Skip to content

Commit e692a22

Browse files
authored
test: add tests for retrieving the version (argoproj#23572)
Signed-off-by: nitishfy <justnitish06@gmail.com>
1 parent abbdfa2 commit e692a22

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

common/version_test.go

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
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+
}

0 commit comments

Comments
 (0)