github.com/kubeshop/testkube@v1.17.23/pkg/api/v1/client/api_test.go (about) 1 package client 2 3 import ( 4 "fmt" 5 "net/http" 6 "net/http/httptest" 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 "k8s.io/apimachinery/pkg/runtime/schema" 11 "k8s.io/apimachinery/pkg/types" 12 "k8s.io/client-go/kubernetes/fake" 13 "k8s.io/client-go/rest" 14 "k8s.io/client-go/util/flowcontrol" 15 16 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 17 ) 18 19 type Rest struct { 20 } 21 22 func (r *Rest) GetRateLimiter() flowcontrol.RateLimiter { 23 return flowcontrol.NewFakeAlwaysRateLimiter() 24 } 25 func (r *Rest) Verb(verb string) *rest.Request { 26 return &rest.Request{} 27 } 28 func (r *Rest) Post() *rest.Request { 29 return &rest.Request{} 30 31 } 32 func (r *Rest) Put() *rest.Request { 33 return &rest.Request{} 34 35 } 36 func (r *Rest) Patch(pt types.PatchType) *rest.Request { 37 return &rest.Request{} 38 39 } 40 func (r *Rest) Get() *rest.Request { 41 return &rest.Request{} 42 43 } 44 func (r *Rest) Delete() *rest.Request { 45 return &rest.Request{} 46 47 } 48 func (r *Rest) APIVersion() schema.GroupVersion { 49 return schema.GroupVersion{Group: "api", Version: "v1"} 50 } 51 52 func TestDefaultDirectAPIClient(t *testing.T) { 53 t.Skip("Implement working test") 54 55 k8sClient := fake.NewSimpleClientset() 56 // can't override REST client to change requested URI 57 // k8sClient.CoreV1().RESTCli nt() 58 config := NewAPIConfig("testkube", "testkube-api-server", 8088) 59 client := NewProxyAPIClient(k8sClient, config) 60 61 t.Run("Execute test with given ID", func(t *testing.T) { 62 // given 63 srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { 64 w.Header().Add("Content-Type", "application/json") 65 fmt.Fprintf(w, `{"id":"1", "executionResult":{"status": "success", "output":"execution completed"}}`) 66 })) 67 defer srv.Close() 68 69 // when 70 options := ExecuteTestOptions{ 71 ExecutionVariables: map[string]testkube.Variable{}, 72 SecretEnvs: map[string]string{}, 73 } 74 execution, err := client.ExecuteTest("test", "some name", options) 75 76 // then 77 assert.Equal(t, "1", execution.Id) 78 assert.Equal(t, testkube.PASSED_ExecutionStatus, *execution.ExecutionResult.Status) 79 assert.Equal(t, "execution completed", execution.ExecutionResult.Output) 80 assert.NoError(t, err) 81 }) 82 83 }