github.com/kubeshop/testkube@v1.17.23/pkg/cloud/client/environments_test.go (about) 1 package client 2 3 import ( 4 "io" 5 "net/http" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestEnvironmentsClient_Create(t *testing.T) { 12 13 t.Run("error on response", func(t *testing.T) { 14 // given 15 o := NewEnvironmentsClient("testkube.dev", "token", "tkcorg_2bb1486705fb6997") 16 o.RESTClient.Client = ClientMock{err: http.ErrNoLocation, validateRequestFunc: func(req *http.Request) error { return nil }} 17 18 // when 19 _, err := o.Create(Environment{}) 20 21 // then 22 assert.Error(t, err) 23 }) 24 25 t.Run("create org", func(t *testing.T) { 26 // given 27 o := NewEnvironmentsClient("testkube.dev", "token", "tkcorg_2bb1486705fb6997") 28 resp := []byte(`{"id":"tkcenv_7991262606ff41ab","name":"env-name","connected":false,"organizationID":"tkcorg_2bb1486705fb6997","agentToken":"887179cf83a16","installCommand":"helm repo add kubeshop https://kubeshop.github.io/helm-charts ; helm repo update && helm upgrade --install --create-namespace testkube kubeshop/testkube --set testkube-api.cloud.key=tkcagnt_68cf83a16 --set testkube-api.minio.enabled=false --set mongodb.enabled=false --set testkube-dashboard.enabled=false --namespace testkube","installCommandCli":"testkube init --agent-uri agent.testkube.io:443 --agent-key tkcagnt_68dd1ed43a16"}`) 29 o.RESTClient.Client = ClientMock{body: []byte(resp), validateRequestFunc: func(r *http.Request) error { 30 d, _ := io.ReadAll(r.Body) 31 assert.Equal(t, "{\"name\":\"env-name\",\"id\":\"\",\"connected\":false,\"owner\":\"\"}", string(d)) 32 return nil 33 }} 34 35 // when 36 env, err := o.Create(Environment{Name: "env-name"}) 37 38 // then 39 assert.NoError(t, err) 40 assert.Equal(t, "tkcenv_7991262606ff41ab", env.Id) 41 assert.Equal(t, "env-name", env.Name) 42 assert.Equal(t, "tkcorg_2bb1486705fb6997", env.OrganizationId) 43 assert.Equal(t, "887179cf83a16", env.AgentToken) 44 }) 45 }