linkerd2/pkg/version/version_test.go

52 lines
1.3 KiB
Go

package version_test
import (
"testing"
"github.com/linkerd/linkerd2/controller/api/public"
pb "github.com/linkerd/linkerd2/controller/gen/public"
"github.com/linkerd/linkerd2/pkg/version"
)
func TestCheckClientVersion(t *testing.T) {
t.Run("Passes when client version matches", func(t *testing.T) {
err := version.CheckClientVersion(version.Version)
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
})
t.Run("Fails when client version does not match", func(t *testing.T) {
err := version.CheckClientVersion(version.Version + "latest")
if err == nil {
t.Fatalf("Expected error, got none")
}
})
}
func TestCheckServerVersion(t *testing.T) {
t.Run("Passes when server version matches", func(t *testing.T) {
apiClient := createMockPublicApi(version.Version)
err := version.CheckServerVersion(apiClient, version.Version)
if err != nil {
t.Fatalf("Unexpected error: %s", err)
}
})
t.Run("Fails when server version does not match", func(t *testing.T) {
apiClient := createMockPublicApi(version.Version + "latest")
err := version.CheckServerVersion(apiClient, version.Version)
if err == nil {
t.Fatalf("Expected error, got none")
}
})
}
func createMockPublicApi(version string) *public.MockApiClient {
return &public.MockApiClient{
VersionInfoToReturn: &pb.VersionInfo{
ReleaseVersion: version,
},
}
}