mirror of
https://github.com/argoproj/argo-cd.git
synced 2026-02-20 01:28:45 +01:00
83 lines
2.1 KiB
Go
83 lines
2.1 KiB
Go
package common
|
|
|
|
import (
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestGetVersion(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
inputGitCommit string
|
|
inputGitTag string
|
|
inputTreeState string
|
|
inputVersion string
|
|
expected string
|
|
}{
|
|
{
|
|
name: "Official release with tag and clean state",
|
|
inputGitCommit: "abcdef123456",
|
|
inputGitTag: "v1.2.3",
|
|
inputTreeState: "clean",
|
|
inputVersion: "1.2.3",
|
|
expected: "v1.2.3",
|
|
},
|
|
{
|
|
name: "Dirty state with commit",
|
|
inputGitCommit: "deadbeefcafebabe",
|
|
inputGitTag: "",
|
|
inputTreeState: "dirty",
|
|
inputVersion: "2.0.1",
|
|
expected: "v2.0.1+deadbee.dirty",
|
|
},
|
|
{
|
|
name: "Clean state with commit, no tag",
|
|
inputGitCommit: "cafebabedeadbeef",
|
|
inputGitTag: "",
|
|
inputTreeState: "clean",
|
|
inputVersion: "2.1.0",
|
|
expected: "v2.1.0+cafebab",
|
|
},
|
|
{
|
|
name: "Missing commit and tag",
|
|
inputGitCommit: "",
|
|
inputGitTag: "",
|
|
inputTreeState: "clean",
|
|
inputVersion: "3.1.0",
|
|
expected: "v3.1.0+unknown",
|
|
},
|
|
{
|
|
name: "Short commit",
|
|
inputGitCommit: "abc",
|
|
inputGitTag: "",
|
|
inputTreeState: "clean",
|
|
inputVersion: "4.0.0",
|
|
expected: "v4.0.0+unknown",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
gitCommit = tt.inputGitCommit
|
|
gitTag = tt.inputGitTag
|
|
gitTreeState = tt.inputTreeState
|
|
version = tt.inputVersion
|
|
|
|
buildDate = "2025-06-26"
|
|
kubectlVersion = "v1.30.0"
|
|
extraBuildInfo = "test-build"
|
|
|
|
got := GetVersion()
|
|
assert.Equal(t, tt.expected, got.Version)
|
|
assert.Equal(t, buildDate, got.BuildDate)
|
|
assert.Equal(t, tt.inputGitCommit, got.GitCommit)
|
|
assert.Equal(t, tt.inputGitTag, got.GitTag)
|
|
assert.Equal(t, tt.inputTreeState, got.GitTreeState)
|
|
assert.Equal(t, runtime.Version(), got.GoVersion)
|
|
assert.Equal(t, runtime.Compiler, got.Compiler)
|
|
assert.Equal(t, runtime.GOOS+"/"+runtime.GOARCH, got.Platform)
|
|
assert.Equal(t, kubectlVersion, got.KubectlVersion)
|
|
assert.Equal(t, extraBuildInfo, got.ExtraBuildInfo)
|
|
}
|
|
}
|