1 package resolver
2
3 import (
4 "context"
5 "testing"
6
7 "github.com/golang/mock/gomock"
8 "github.com/stretchr/testify/assert"
9
10 bsltypes "edge-infra.dev/pkg/edge/api/bsl/types"
11 "edge-infra.dev/pkg/edge/api/graph/model"
12 "edge-infra.dev/pkg/edge/api/middleware"
13 "edge-infra.dev/pkg/edge/api/mocks"
14 "edge-infra.dev/pkg/edge/api/types"
15 "edge-infra.dev/pkg/edge/bsl"
16 )
17
18 func TestAddSiteToStore(t *testing.T) {
19 mock := gomock.NewController(t)
20 storeService := mocks.NewMockStoreClusterService(mock)
21 storeService.EXPECT().GetClusterByClusterEdgeID(gomock.Any(), "clusterEdgeID").
22 Return(types.Cluster{BannerEdgeID: "bannerEdgeID"}, nil).Times(1)
23 storeService.EXPECT().UpdateStoreSiteID(gomock.Any(), gomock.Any(), gomock.Any()).
24 Return(nil).Times(1)
25
26 bannerService := mocks.NewMockBannerService(mock)
27 bannerService.EXPECT().GetBannerByEdgeID(gomock.Any(), "bannerEdgeID").
28 Return(&model.Banner{}, nil).Times(1)
29
30 bslSiteService := mocks.NewMockBSLSiteService(mock)
31 bslSiteService.EXPECT().GetOrCreateSite(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).
32 Return(&bsl.BSLInfo{}, true, nil).Times(1)
33
34 chariotService := mocks.NewMockChariotService(mock)
35
36 c := &types.Config{BSP: bsltypes.BSPConfig{OrganizationPrefix: "test_prefix-"}}
37 r := &Resolver{
38 StoreClusterService: storeService,
39 BannerService: bannerService,
40 BSLSiteService: bslSiteService,
41 ChariotService: chariotService,
42 Config: c,
43 }
44 siteID := "siteID"
45
46 ctx := middleware.NewContext(context.Background(), &bsltypes.AuthUser{
47 Username: "test-user",
48 Organization: "organization",
49 })
50 storeResponse, err := r.Mutation().AddSiteToStore(ctx, "clusterEdgeID", &siteID)
51 assert.Equal(t, storeResponse.ClusterEdgeID, "clusterEdgeID")
52 assert.NoError(t, err)
53 }
54
55 func TestAddSiteToStoreWithEU(t *testing.T) {
56 mock := gomock.NewController(t)
57 storeService := mocks.NewMockStoreClusterService(mock)
58 storeService.EXPECT().GetClusterByClusterEdgeID(gomock.Any(), "clusterEdgeID").
59 Return(types.Cluster{BannerEdgeID: "bannerEdgeID"}, nil).Times(1)
60 storeService.EXPECT().UpdateStoreSiteID(gomock.Any(), gomock.Any(), gomock.Any()).
61 Return(nil).Times(1)
62
63 bannerService := mocks.NewMockBannerService(mock)
64 bannerService.EXPECT().GetBannerByEdgeID(gomock.Any(), "bannerEdgeID").
65 Return(&model.Banner{BannerType: "eu"}, nil).Times(1)
66
67 bslSiteService := mocks.NewMockBSLSiteService(mock)
68 bslSiteService.EXPECT().GetOrCreateSite(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).
69 Return(&bsl.BSLInfo{}, true, nil).Times(1)
70
71 chariotService := mocks.NewMockChariotService(mock)
72
73 c := &types.Config{BSP: bsltypes.BSPConfig{OrganizationPrefix: "test_prefix-"}}
74 r := &Resolver{
75 StoreClusterService: storeService,
76 BannerService: bannerService,
77 BSLSiteService: bslSiteService,
78 ChariotService: chariotService,
79 Config: c,
80 }
81 siteID := "siteID"
82
83 ctx := middleware.NewContext(context.Background(), &bsltypes.AuthUser{
84 Username: "test-user",
85 Organization: "organization",
86 })
87 storeResponse, err := r.Mutation().AddSiteToStore(ctx, "clusterEdgeID", &siteID)
88 assert.Equal(t, storeResponse.ClusterEdgeID, "clusterEdgeID")
89 assert.NoError(t, err)
90 }
91
92 func TestUpdateClusterName(t *testing.T) {
93 var (
94 clusterEdgeID = "clusterEdgeID"
95 name = "cluster1"
96 cluster = &model.Cluster{ClusterEdgeID: clusterEdgeID, Name: name}
97 )
98 mock := gomock.NewController(t)
99 storeService := mocks.NewMockStoreClusterService(mock)
100 storeService.EXPECT().UpdateStoreName(gomock.Any(), clusterEdgeID, name).
101 Return(nil).Times(1)
102 storeService.EXPECT().GetCluster(gomock.Any(), clusterEdgeID).
103 Return(cluster, nil).Times(1)
104
105 r := &Resolver{
106 StoreClusterService: storeService,
107 }
108
109 ctx := middleware.NewContext(context.Background(), &bsltypes.AuthUser{
110 Username: "test-user",
111 Organization: "organization",
112 })
113 storeResponse, err := r.Mutation().UpdateClusterName(ctx, clusterEdgeID, name)
114 assert.Equal(t, storeResponse.Name, name)
115 assert.NoError(t, err)
116 }
117
View as plain text