diff --git a/src/main/java/hudson/plugins/jira/listissuesparameter/JiraIssueParameterDefinition.java b/src/main/java/hudson/plugins/jira/listissuesparameter/JiraIssueParameterDefinition.java index 9251e2f6..e5742f01 100644 --- a/src/main/java/hudson/plugins/jira/listissuesparameter/JiraIssueParameterDefinition.java +++ b/src/main/java/hudson/plugins/jira/listissuesparameter/JiraIssueParameterDefinition.java @@ -32,6 +32,7 @@ import java.util.concurrent.TimeoutException; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; +import org.jenkinsci.Symbol; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.DataBoundSetter; import org.kohsuke.stapler.Stapler; @@ -113,6 +114,7 @@ public void setAltSummaryFields(String altSummaryFields) { } @Extension + @Symbol("jiraIssue") public static class DescriptorImpl extends ParameterDescriptor { @Override public String getDisplayName() { diff --git a/src/test/java/hudson/plugins/jira/listissuesparameter/JiraIssueParameterTest.java b/src/test/java/hudson/plugins/jira/listissuesparameter/JiraIssueParameterTest.java new file mode 100644 index 00000000..a3bc6583 --- /dev/null +++ b/src/test/java/hudson/plugins/jira/listissuesparameter/JiraIssueParameterTest.java @@ -0,0 +1,39 @@ +package hudson.plugins.jira.listissuesparameter; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.*; + +import hudson.model.ParametersDefinitionProperty; +import org.jenkinsci.plugins.workflow.cps.CpsFlowDefinition; +import org.jenkinsci.plugins.workflow.job.WorkflowJob; +import org.junit.jupiter.api.Test; +import org.jvnet.hudson.test.JenkinsRule; +import org.jvnet.hudson.test.junit.jupiter.WithJenkins; + +@WithJenkins +class JiraIssueParameterTest { + + @Test + void scriptedPipeline(JenkinsRule r) throws Exception { + WorkflowJob p = r.createProject(WorkflowJob.class); + p.setDefinition(new CpsFlowDefinition( + """ + properties([ + parameters([ + jiraIssue(name: 'JIRA_ISSUE', description: 'Jira Test Description', jiraIssueFilter: 'project=PRJ') + ]) + ])""", + true)); + r.buildAndAssertSuccess(p); + + ParametersDefinitionProperty parameters = p.getProperty(ParametersDefinitionProperty.class); + assertThat(parameters, is(notNullValue())); + assertThat( + parameters.getParameterDefinitions(), + hasItem(allOf( + instanceOf(JiraIssueParameterDefinition.class), + hasProperty("name", is("JIRA_ISSUE")), + hasProperty("description", is("Jira Test Description")), + hasProperty("jiraIssueFilter", is("project=PRJ"))))); + } +}