1
0
mirror of https://github.com/SAP/jenkins-library.git synced 2025-11-06 09:09:19 +02:00
Files
sap-jenkins-library/pkg/buildsettings/buildSettings_test.go
Anil Keshav bc8225cffb feat(build): add buildSettingsInfo for gradleExecuteBuild (#5043)
* creating build settings info from gradle build

* fix linting issue and typo

* fixing step description

* Apply suggestions from code review

Co-authored-by: Tilo Körner <70266685+tiloKo@users.noreply.github.com>

* Address code review comments

* Fix tests

* Fix tests

* Fix tests

* Fix test

---------

Co-authored-by: Christopher Fenner <26137398+CCFenner@users.noreply.github.com>
Co-authored-by: Tilo Körner <70266685+tiloKo@users.noreply.github.com>
Co-authored-by: Vyacheslav Starostin <32613074+vstarostin@users.noreply.github.com>
Co-authored-by: Vyacheslav Starostin <vyacheslav.starostin@sap.com>
2024-10-15 12:14:23 +05:00

82 lines
2.7 KiB
Go

package buildsettings
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestCreateBuildSettingsInfo(t *testing.T) {
t.Run("test build settings cpe with no previous and existing values", func(t *testing.T) {
testTableConfig := []struct {
config BuildOptions
buildTool string
expected string
}{
{
config: BuildOptions{CreateBOM: true},
buildTool: "golangBuild",
expected: "{\"golangBuild\":[{\"createBOM\":true}]}",
},
{
config: BuildOptions{DockerImage: "golang:latest"},
buildTool: "golangBuild",
expected: "{\"golangBuild\":[{\"dockerImage\":\"golang:latest\"}]}",
},
{
config: BuildOptions{CreateBOM: true, DockerImage: "gradle:latest"},
buildTool: "gradleExecuteBuild",
expected: "{\"gradleExecuteBuild\":[{\"createBOM\":true,\"dockerImage\":\"gradle:latest\"}]}",
},
{
config: BuildOptions{Publish: true},
buildTool: "helmExecute",
expected: "{\"helmExecute\":[{\"publish\":true}]}",
},
{
config: BuildOptions{Publish: true},
buildTool: "kanikoExecute",
expected: "{\"kanikoExecute\":[{\"publish\":true}]}",
},
{
config: BuildOptions{Profiles: []string{"profile1", "profile2"}, CreateBOM: true},
buildTool: "mavenBuild",
expected: "{\"mavenBuild\":[{\"profiles\":[\"profile1\",\"profile2\"],\"createBOM\":true}]}",
},
{
config: BuildOptions{Profiles: []string{"profile1", "profile2"}, CreateBOM: true, BuildSettingsInfo: "{\"mavenBuild\":[{\"createBOM\":true}]}"},
buildTool: "mavenBuild",
expected: "{\"mavenBuild\":[{\"createBOM\":true},{\"profiles\":[\"profile1\",\"profile2\"],\"createBOM\":true}]}",
},
{
config: BuildOptions{Profiles: []string{"release.build"}, Publish: true, GlobalSettingsFile: "http://nexus.test:8081/nexus/"},
buildTool: "mtaBuild",
expected: "{\"mtaBuild\":[{\"profiles\":[\"release.build\"],\"publish\":true,\"globalSettingsFile\":\"http://nexus.test:8081/nexus/\"}]}",
},
{
config: BuildOptions{CreateBOM: true},
buildTool: "pythonBuild",
expected: "{\"pythonBuild\":[{\"createBOM\":true}]}",
},
{
config: BuildOptions{CreateBOM: true},
buildTool: "npmExecuteScripts",
expected: "{\"npmExecuteScripts\":[{\"createBOM\":true}]}",
},
{
config: BuildOptions{DockerImage: "builder:latest"},
buildTool: "cnbBuild",
expected: "{\"cnbBuild\":[{\"dockerImage\":\"builder:latest\"}]}",
},
}
for _, testCase := range testTableConfig {
buildSettings, err := CreateBuildSettingsInfo(&testCase.config, testCase.buildTool)
assert.Nil(t, err)
assert.Equal(t, testCase.expected, buildSettings)
}
})
}