diff --git a/src/main/groovy/com/lesfurets/jenkins/unit/BasePipelineTest.groovy b/src/main/groovy/com/lesfurets/jenkins/unit/BasePipelineTest.groovy index 087a4d2c..78b3ca89 100644 --- a/src/main/groovy/com/lesfurets/jenkins/unit/BasePipelineTest.groovy +++ b/src/main/groovy/com/lesfurets/jenkins/unit/BasePipelineTest.groovy @@ -195,6 +195,7 @@ abstract class BasePipelineTest { helper.registerAllowedMethod('mail', [Map]) helper.registerAllowedMethod("node", [Closure]) helper.registerAllowedMethod("node", [String, Closure]) + helper.registerAllowedMethod("parameters", [List]) helper.registerAllowedMethod("pipelineTriggers", [List]) helper.registerAllowedMethod('pollSCM', [String]) helper.registerAllowedMethod("properties", [List]) diff --git a/src/test/groovy/com/lesfurets/jenkins/TestParametersJob.groovy b/src/test/groovy/com/lesfurets/jenkins/TestParametersJob.groovy new file mode 100644 index 00000000..72ce2252 --- /dev/null +++ b/src/test/groovy/com/lesfurets/jenkins/TestParametersJob.groovy @@ -0,0 +1,25 @@ +package com.lesfurets.jenkins + +import com.lesfurets.jenkins.unit.BaseRegressionTest +import org.junit.Before +import org.junit.Test + +class TestParametersJob extends BaseRegressionTest { + + @Override + @Before + void setUp() throws Exception { + scriptRoots += 'src/test/jenkins' + super.setUp() + } + + @Test + void should_run_script_parameters() { + // when: + runScript("job/parameters.jenkins") + + // then: + assertJobStatusSuccess() + testNonRegression("parameters") + } +} diff --git a/src/test/groovy/com/lesfurets/jenkins/TestWithCredentialsAndParametersJob.groovy b/src/test/groovy/com/lesfurets/jenkins/TestWithCredentialsAndParametersJob.groovy new file mode 100644 index 00000000..3e795eb6 --- /dev/null +++ b/src/test/groovy/com/lesfurets/jenkins/TestWithCredentialsAndParametersJob.groovy @@ -0,0 +1,25 @@ +package com.lesfurets.jenkins + +import com.lesfurets.jenkins.unit.BaseRegressionTest +import org.junit.Before +import org.junit.Test + +class TestWithCredentialsAndParametersJob extends BaseRegressionTest { + + @Override + @Before + void setUp() throws Exception { + scriptRoots += 'src/test/jenkins' + super.setUp() + } + + @Test + void should_run_script_with_parameters() { + // when: + runScript("job/withCredentialsAndParameters.jenkins") + + // then: + assertJobStatusSuccess() + testNonRegression("withCredentialsAndParameters") + } +} diff --git a/src/test/jenkins/job/parameters.jenkins b/src/test/jenkins/job/parameters.jenkins new file mode 100644 index 00000000..47b8f751 --- /dev/null +++ b/src/test/jenkins/job/parameters.jenkins @@ -0,0 +1,8 @@ +properties([ + parameters([ + booleanParam(name: 'myBooleanParam', description: 'My boolean typed parameter'), + string(name: 'myStringParam', defaultValue: 'my default value', description: 'My string typed parameter') + ]) +]) + +echo("'myStringParam' value is default: ${params.myStringParam}") diff --git a/src/test/jenkins/job/withCredentialsAndParameters.jenkins b/src/test/jenkins/job/withCredentialsAndParameters.jenkins new file mode 100644 index 00000000..12bd5c20 --- /dev/null +++ b/src/test/jenkins/job/withCredentialsAndParameters.jenkins @@ -0,0 +1,12 @@ +properties([ + parameters([ + booleanParam(name: 'myBooleanParam', description: 'My boolean typed parameter'), + string(name: 'myStringParam', defaultValue: 'my default value', description: 'My string typed parameter') + ]) +]) + +echo("'myStringParam' value is default: ${params.myStringParam}") + +withCredentials([string(credentialsId: 'my-gitlab-api-token', variable: 'GITLAB_API_TOKEN')]) { + echo("'my-gitlab-api-token' credential variable value: ${GITLAB_API_TOKEN}") +} diff --git a/src/test/resources/callstacks/TestParametersJob_parameters.txt b/src/test/resources/callstacks/TestParametersJob_parameters.txt new file mode 100644 index 00000000..9f4d200e --- /dev/null +++ b/src/test/resources/callstacks/TestParametersJob_parameters.txt @@ -0,0 +1,6 @@ + parameters.run() + parameters.booleanParam({name=myBooleanParam, description=My boolean typed parameter}) + parameters.string({name=myStringParam, defaultValue=my default value, description=My string typed parameter}) + parameters.parameters([null, null]) + parameters.properties([null]) + parameters.echo('myStringParam' value is default: my default value) diff --git a/src/test/resources/callstacks/TestWithCredentialsAndParametersJob_withCredentialsAndParameters.txt b/src/test/resources/callstacks/TestWithCredentialsAndParametersJob_withCredentialsAndParameters.txt new file mode 100644 index 00000000..542ae3c0 --- /dev/null +++ b/src/test/resources/callstacks/TestWithCredentialsAndParametersJob_withCredentialsAndParameters.txt @@ -0,0 +1,9 @@ + withCredentialsAndParameters.run() + withCredentialsAndParameters.booleanParam({name=myBooleanParam, description=My boolean typed parameter}) + withCredentialsAndParameters.string({name=myStringParam, defaultValue=my default value, description=My string typed parameter}) + withCredentialsAndParameters.parameters([null, null]) + withCredentialsAndParameters.properties([null]) + withCredentialsAndParameters.echo('myStringParam' value is default: my default value) + withCredentialsAndParameters.string({credentialsId=my-gitlab-api-token, variable=GITLAB_API_TOKEN}) + withCredentialsAndParameters.withCredentials([GITLAB_API_TOKEN], groovy.lang.Closure) + withCredentialsAndParameters.echo('my-gitlab-api-token' credential variable value: GITLAB_API_TOKEN)