github.com/kubeshop/testkube@v1.17.23/pkg/cloud/data/config/config_test.go (about) 1 package config 2 3 import ( 4 "context" 5 "encoding/json" 6 "testing" 7 8 "github.com/golang/mock/gomock" 9 "github.com/stretchr/testify/assert" 10 11 "github.com/kubeshop/testkube/pkg/api/v1/testkube" 12 "github.com/kubeshop/testkube/pkg/cloud/data/executor" 13 ) 14 15 var ctx = context.Background() 16 17 func TestCloudRepository_GetUniqueClusterId(t *testing.T) { 18 t.Parallel() 19 20 ctrl := gomock.NewController(t) 21 defer ctrl.Finish() 22 23 mockExecutor := executor.NewMockExecutor(ctrl) 24 25 // Setup expectations for the mockedExecutor.Execute method 26 expectedReq := GetUniqueClusterIdRequest{} 27 expectedResponse, _ := json.Marshal(&GetUniqueClusterIdResponse{ClusterID: "test-cluster"}) 28 mockExecutor.EXPECT().Execute(gomock.Any(), CmdConfigGetUniqueClusterId, expectedReq).Return(expectedResponse, nil) 29 30 r := &CloudRepository{executor: mockExecutor} 31 32 result, err := r.GetUniqueClusterId(ctx) 33 assert.NoError(t, err) 34 assert.Equal(t, result, "test-cluster") 35 } 36 37 func TestCloudRepository_GetTelemetryEnabled(t *testing.T) { 38 t.Parallel() 39 40 ctrl := gomock.NewController(t) 41 defer ctrl.Finish() 42 43 mockExecutor := executor.NewMockExecutor(ctrl) 44 45 // Setup expectations for the mockedExecutor.Execute method 46 expectedReq := GetTelemetryEnabledRequest{} 47 expectedResponse, _ := json.Marshal(&GetTelemetryEnabledResponse{Enabled: true}) 48 mockExecutor.EXPECT().Execute(gomock.Any(), CmdConfigGetTelemetryEnabled, expectedReq).Return(expectedResponse, nil) 49 50 r := &CloudRepository{executor: mockExecutor} 51 52 result, err := r.GetTelemetryEnabled(ctx) 53 assert.NoError(t, err) 54 assert.Equal(t, result, true) 55 } 56 57 func TestCloudRepository_Get(t *testing.T) { 58 t.Parallel() 59 60 mockCtrl := gomock.NewController(t) 61 defer mockCtrl.Finish() 62 63 mockExecutor := executor.NewMockExecutor(mockCtrl) 64 repo := &CloudRepository{executor: mockExecutor} 65 66 expectedConfig := testkube.Config{Id: "test-id", ClusterId: "test-cluster", EnableTelemetry: true} 67 expectedResponse := GetResponse{Config: expectedConfig} 68 expectedResponseBytes, _ := json.Marshal(expectedResponse) 69 70 mockExecutor.EXPECT().Execute(ctx, CmdConfigGet, GetRequest{}).Return(expectedResponseBytes, nil) 71 72 actualConfig, err := repo.Get(ctx) 73 if err != nil { 74 t.Fatalf("unexpected error: %v", err) 75 } 76 77 assert.Equal(t, expectedConfig, actualConfig) 78 } 79 80 func TestCloudRepository_Upsert(t *testing.T) { 81 t.Parallel() 82 83 mockCtrl := gomock.NewController(t) 84 defer mockCtrl.Finish() 85 86 mockExecutor := executor.NewMockExecutor(mockCtrl) 87 repo := &CloudRepository{executor: mockExecutor} 88 89 expectedConfig := testkube.Config{Id: "test-id2", ClusterId: "test-cluster2", EnableTelemetry: true} 90 expectedResponse := UpsertResponse{Config: expectedConfig} 91 expectedResponseBytes, _ := json.Marshal(expectedResponse) 92 93 mockExecutor.EXPECT().Execute(ctx, CmdConfigUpsert, UpsertRequest{Config: expectedConfig}).Return(expectedResponseBytes, nil) 94 95 actualConfig, err := repo.Upsert(ctx, expectedConfig) 96 if err != nil { 97 t.Fatalf("unexpected error: %v", err) 98 } 99 100 assert.Equal(t, expectedConfig, actualConfig) 101 }