github.com/argoproj/argo-cd/v3@v3.2.1/common/version_test.go (about) 1 package common 2 3 import ( 4 "runtime" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestGetVersion(t *testing.T) { 11 tests := []struct { 12 name string 13 inputGitCommit string 14 inputGitTag string 15 inputTreeState string 16 inputVersion string 17 expected string 18 }{ 19 { 20 name: "Official release with tag and clean state", 21 inputGitCommit: "abcdef123456", 22 inputGitTag: "v1.2.3", 23 inputTreeState: "clean", 24 inputVersion: "1.2.3", 25 expected: "v1.2.3", 26 }, 27 { 28 name: "Dirty state with commit", 29 inputGitCommit: "deadbeefcafebabe", 30 inputGitTag: "", 31 inputTreeState: "dirty", 32 inputVersion: "2.0.1", 33 expected: "v2.0.1+deadbee.dirty", 34 }, 35 { 36 name: "Clean state with commit, no tag", 37 inputGitCommit: "cafebabedeadbeef", 38 inputGitTag: "", 39 inputTreeState: "clean", 40 inputVersion: "2.1.0", 41 expected: "v2.1.0+cafebab", 42 }, 43 { 44 name: "Missing commit and tag", 45 inputGitCommit: "", 46 inputGitTag: "", 47 inputTreeState: "clean", 48 inputVersion: "3.1.0", 49 expected: "v3.1.0+unknown", 50 }, 51 { 52 name: "Short commit", 53 inputGitCommit: "abc", 54 inputGitTag: "", 55 inputTreeState: "clean", 56 inputVersion: "4.0.0", 57 expected: "v4.0.0+unknown", 58 }, 59 } 60 for _, tt := range tests { 61 gitCommit = tt.inputGitCommit 62 gitTag = tt.inputGitTag 63 gitTreeState = tt.inputTreeState 64 version = tt.inputVersion 65 66 buildDate = "2025-06-26" 67 kubectlVersion = "v1.30.0" 68 extraBuildInfo = "test-build" 69 70 got := GetVersion() 71 assert.Equal(t, tt.expected, got.Version) 72 assert.Equal(t, buildDate, got.BuildDate) 73 assert.Equal(t, tt.inputGitCommit, got.GitCommit) 74 assert.Equal(t, tt.inputGitTag, got.GitTag) 75 assert.Equal(t, tt.inputTreeState, got.GitTreeState) 76 assert.Equal(t, runtime.Version(), got.GoVersion) 77 assert.Equal(t, runtime.Compiler, got.Compiler) 78 assert.Equal(t, runtime.GOOS+"/"+runtime.GOARCH, got.Platform) 79 assert.Equal(t, kubectlVersion, got.KubectlVersion) 80 assert.Equal(t, extraBuildInfo, got.ExtraBuildInfo) 81 } 82 }