github.com/castai/kvisor@v1.7.1-0.20240516114728-b3572a2607b5/cmd/controller/kube/version_test.go (about) 1 package kube 2 3 import ( 4 "encoding/json" 5 "net/http" 6 "net/http/httptest" 7 "testing" 8 9 "github.com/stretchr/testify/require" 10 "k8s.io/apimachinery/pkg/version" 11 "k8s.io/client-go/kubernetes" 12 "k8s.io/client-go/rest" 13 ) 14 15 func TestVersion(t *testing.T) { 16 r := require.New(t) 17 v := version.Info{ 18 Major: "1", 19 Minor: "21+", 20 GitCommit: "2812f9fb0003709fc44fc34166701b377020f1c9", 21 } 22 s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { 23 b, err := json.Marshal(v) 24 if err != nil { 25 t.Errorf("unexpected encoding error: %v", err) 26 return 27 } 28 w.Header().Set("Content-Type", "application/json") 29 w.WriteHeader(http.StatusOK) 30 _, err = w.Write(b) 31 r.NoError(err) 32 })) 33 defer s.Close() 34 client := kubernetes.NewForConfigOrDie(&rest.Config{Host: s.URL}) 35 36 got, err := GetVersion(client) 37 if err != nil { 38 return 39 } 40 41 r.NoError(err) 42 r.Equal("1.21+", got.Full) 43 r.Equal(21, got.MinorInt) 44 }