github.com/jfrog/jfrog-cli-core@v1.12.1/artifactory/commands/buildinfo/publish_test.go (about) 1 package buildinfo 2 3 import ( 4 "github.com/jfrog/jfrog-cli-core/artifactory/utils" 5 "github.com/jfrog/jfrog-cli-core/utils/config" 6 "github.com/stretchr/testify/assert" 7 "reflect" 8 "strconv" 9 "testing" 10 "time" 11 12 "github.com/jfrog/jfrog-client-go/artifactory/buildinfo" 13 ) 14 15 var envVars = map[string]string{"KeY": "key_val", "INClUdEd_VaR": "included_var", "EXCLUDED_pASSwoRd_var": "excluded_var"} 16 17 func TestIncludeAllPattern(t *testing.T) { 18 conf := buildinfo.Configuration{EnvInclude: "*"} 19 includeFilter := conf.IncludeFilter() 20 filteredKeys, err := includeFilter(envVars) 21 if err != nil { 22 t.Error(err) 23 } 24 25 equals := reflect.DeepEqual(envVars, filteredKeys) 26 if !equals { 27 t.Error("expected:", envVars, "got:", filteredKeys) 28 } 29 } 30 31 func TestIncludePartial(t *testing.T) { 32 conf := buildinfo.Configuration{EnvInclude: "*ED_V*;EXC*SwoRd_var"} 33 includeFilter := conf.IncludeFilter() 34 filteredKeys, err := includeFilter(envVars) 35 if err != nil { 36 t.Error(err) 37 } 38 39 expected := map[string]string{"INClUdEd_VaR": "included_var", "EXCLUDED_pASSwoRd_var": "excluded_var"} 40 equals := reflect.DeepEqual(expected, filteredKeys) 41 if !equals { 42 t.Error("expected:", expected, "got:", filteredKeys) 43 } 44 } 45 46 func TestIncludePartialIgnoreCase(t *testing.T) { 47 conf := buildinfo.Configuration{EnvInclude: "*Ed_v*"} 48 includeFilter := conf.IncludeFilter() 49 filteredKeys, err := includeFilter(envVars) 50 if err != nil { 51 t.Error(err) 52 } 53 54 expected := map[string]string{"INClUdEd_VaR": "included_var"} 55 equals := reflect.DeepEqual(expected, filteredKeys) 56 if !equals { 57 t.Error("expected:", expected, "got:", filteredKeys) 58 } 59 } 60 61 func TestExcludePasswordsPattern(t *testing.T) { 62 conf := buildinfo.Configuration{EnvExclude: "*paSSword*;*PsW*;*seCrEt*;*kEy*;*token*"} 63 excludeFilter := conf.ExcludeFilter() 64 filteredKeys, err := excludeFilter(envVars) 65 if err != nil { 66 t.Error(err) 67 } 68 69 expected := map[string]string{"INClUdEd_VaR": "included_var"} 70 equals := reflect.DeepEqual(expected, filteredKeys) 71 if !equals { 72 t.Error("expected:", expected, "got:", filteredKeys) 73 } 74 } 75 76 func TestPrintBuildInfoLink(t *testing.T) { 77 buildTime := strconv.FormatInt(time.Now().UnixNano()/1000000, 10) 78 var linkTypes = []struct { 79 majorVersion int 80 buildTime time.Time 81 buildInfoConf utils.BuildConfiguration 82 serverDetails config.ServerDetails 83 expected string 84 }{ 85 {5, time.Now(), utils.BuildConfiguration{BuildName: "test", BuildNumber: "1", Module: "6", Project: "cli"}, 86 config.ServerDetails{Url: "http://localhost:8081/"}, "http://localhost:8081/artifactory/webapp/#/builds/test/1"}, 87 {6, time.Now(), utils.BuildConfiguration{BuildName: "test", BuildNumber: "1", Module: "6", Project: "cli"}, 88 config.ServerDetails{Url: "http://localhost:8081/"}, "http://localhost:8081/artifactory/webapp/#/builds/test/1"}, 89 {7, time.Now(), utils.BuildConfiguration{BuildName: "test", BuildNumber: "1", Module: "6", Project: ""}, 90 config.ServerDetails{Url: "http://localhost:8082/"}, "http://localhost:8082/ui/builds/test/1/" + buildTime + "/published?buildRepo=artifactory-build-info"}, 91 {7, time.Now(), utils.BuildConfiguration{BuildName: "test", BuildNumber: "1", Module: "6", Project: "cli"}, 92 config.ServerDetails{Url: "http://localhost:8082/"}, "http://localhost:8082/ui/builds/test/1/" + buildTime + "/published?buildRepo=cli-build-info&projectKey=cli"}, 93 } 94 95 for _, linkType := range linkTypes { 96 buildPubConf := &BuildPublishCommand{ 97 &linkType.buildInfoConf, 98 &linkType.serverDetails, 99 nil, 100 true, 101 nil, 102 } 103 buildPubComService := buildPubConf.getBuildInfoUiUrl(linkType.majorVersion, linkType.buildTime) 104 assert.Equal(t, buildPubComService, linkType.expected) 105 } 106 }