karmada/pkg/version/release_test.go

53 lines
1.2 KiB
Go

package version
import "testing"
func TestReleaseVersion(t *testing.T) {
tests := []struct {
name string
gitVersion string
expectReleaseVersion string
expectError bool
}{
{
name: "normal git version",
gitVersion: "v1.1.1-6-gf20c721a",
expectReleaseVersion: "v1.1.1",
expectError: false,
},
{
name: "abnormal version",
gitVersion: "vx.y.z-6-gf20c721a",
expectError: true,
},
{
name: "prerelease alpha version",
gitVersion: "v1.7.0-alpha.1-3-gf20c721a",
expectReleaseVersion: "v1.7.0-alpha.1",
expectError: false,
},
}
for i := range tests {
tc := tests[i]
t.Run(tc.name, func(t *testing.T) {
rv, err := ParseGitVersion(tc.gitVersion)
if err != nil {
if !tc.expectError {
t.Fatalf("No error is expected but got: %v", err)
}
// Stop and passes this test as error is expected.
return
} else if err == nil {
if tc.expectError {
t.Fatalf("Expect error, but got nil")
}
}
if rv.ReleaseVersion() != tc.expectReleaseVersion {
t.Fatalf("expect patch release: %s, but got: %s", tc.expectReleaseVersion, rv.ReleaseVersion())
}
})
}
}