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  }