github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/pkg/buildsettings/buildSettings_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package buildsettings 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestCreateBuildSettingsInfo(t *testing.T) { 13 14 t.Run("test build settings cpe with no previous and existing values", func(t *testing.T) { 15 testTableConfig := []struct { 16 config BuildOptions 17 buildTool string 18 expected string 19 }{ 20 { 21 config: BuildOptions{CreateBOM: true}, 22 buildTool: "golangBuild", 23 expected: "{\"golangBuild\":[{\"createBOM\":true}]}", 24 }, 25 { 26 config: BuildOptions{DockerImage: "golang:latest"}, 27 buildTool: "golangBuild", 28 expected: "{\"golangBuild\":[{\"dockerImage\":\"golang:latest\"}]}", 29 }, 30 { 31 config: BuildOptions{CreateBOM: true}, 32 buildTool: "gradleBuild", 33 expected: "{\"gradleBuild\":[{\"createBOM\":true}]}", 34 }, 35 { 36 config: BuildOptions{Publish: true}, 37 buildTool: "helmExecute", 38 expected: "{\"helmExecute\":[{\"publish\":true}]}", 39 }, 40 { 41 config: BuildOptions{Publish: true}, 42 buildTool: "kanikoExecute", 43 expected: "{\"kanikoExecute\":[{\"publish\":true}]}", 44 }, 45 { 46 config: BuildOptions{Profiles: []string{"profile1", "profile2"}, CreateBOM: true}, 47 buildTool: "mavenBuild", 48 expected: "{\"mavenBuild\":[{\"profiles\":[\"profile1\",\"profile2\"],\"createBOM\":true}]}", 49 }, 50 { 51 config: BuildOptions{Profiles: []string{"profile1", "profile2"}, CreateBOM: true, BuildSettingsInfo: "{\"mavenBuild\":[{\"createBOM\":true}]}"}, 52 buildTool: "mavenBuild", 53 expected: "{\"mavenBuild\":[{\"createBOM\":true},{\"profiles\":[\"profile1\",\"profile2\"],\"createBOM\":true}]}", 54 }, 55 { 56 config: BuildOptions{Profiles: []string{"release.build"}, Publish: true, GlobalSettingsFile: "http://nexus.test:8081/nexus/"}, 57 buildTool: "mtaBuild", 58 expected: "{\"mtaBuild\":[{\"profiles\":[\"release.build\"],\"publish\":true,\"globalSettingsFile\":\"http://nexus.test:8081/nexus/\"}]}", 59 }, 60 { 61 config: BuildOptions{CreateBOM: true}, 62 buildTool: "pythonBuild", 63 expected: "{\"pythonBuild\":[{\"createBOM\":true}]}", 64 }, 65 { 66 config: BuildOptions{CreateBOM: true}, 67 buildTool: "npmExecuteScripts", 68 expected: "{\"npmExecuteScripts\":[{\"createBOM\":true}]}", 69 }, 70 { 71 config: BuildOptions{DockerImage: "builder:latest"}, 72 buildTool: "cnbBuild", 73 expected: "{\"cnbBuild\":[{\"dockerImage\":\"builder:latest\"}]}", 74 }, 75 } 76 77 for _, testCase := range testTableConfig { 78 buildSettings, err := CreateBuildSettingsInfo(&testCase.config, testCase.buildTool) 79 assert.Nil(t, err) 80 assert.Equal(t, buildSettings, testCase.expected) 81 } 82 }) 83 84 }