1 package resolver
2
3 import (
4 "context"
5 "errors"
6 "testing"
7 "time"
8
9 "github.com/golang/mock/gomock"
10 "github.com/stretchr/testify/assert"
11
12 bsltypes "edge-infra.dev/pkg/edge/api/bsl/types"
13 "edge-infra.dev/pkg/edge/api/graph/model"
14 "edge-infra.dev/pkg/edge/api/graph/pagination"
15 "edge-infra.dev/pkg/edge/api/middleware"
16 "edge-infra.dev/pkg/edge/api/mocks"
17 "edge-infra.dev/pkg/edge/api/types"
18 "edge-infra.dev/pkg/lib/uuid"
19 )
20
21 var (
22 defaultCursor = pagination.Pager{
23 Cursor: time.Now().Format(time.RFC3339),
24 Offset: 0,
25 Previous: false,
26 }
27 )
28
29 func TestGetActions(t *testing.T) {
30 username := "username"
31 clusterEdgeID := "clusterEdgeID"
32 bannerID := "bannerID"
33 batchID := "batchID"
34 action := "tokenExchange"
35 status := "SUCCESS"
36 activityError := errors.New("")
37 mock := gomock.NewController(t)
38 activityService := mocks.NewMockActivityService(mock)
39 activityService.EXPECT().GetActions(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).
40 Return([]*model.Action{
41 {
42 ActionID: uuid.New().UUID,
43 Action: "bootstrapCluster",
44 Time: "2023-06-29T22:36:30-04:00",
45 Username: username,
46 },
47 }, 0, nil).Times(1)
48
49 activityService.EXPECT().GetActions(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).
50 Return(nil, 0, activityError).Times(1)
51
52 bannerService := mocks.NewMockBannerService(mock)
53 bannerService.EXPECT().GetBannerTenantInfo(gomock.Any(), gomock.Any()).
54 Return(&model.Tenant{}, nil).Times(2)
55
56 c := &types.Config{BSP: bsltypes.BSPConfig{OrganizationPrefix: "test_prefix-"}}
57 r := &Resolver{
58 ActivityService: activityService,
59 BannerService: bannerService,
60 Config: c,
61 }
62
63 ctx := middleware.NewContext(context.Background(), &bsltypes.AuthUser{
64 Username: "test-user",
65 Organization: "organization",
66 })
67
68 cursor := pagination.Encode(defaultCursor)
69 count := 20
70
71 actions, err := r.Query().Actions(ctx, &username, &bannerID, &clusterEdgeID, &batchID, &action, &status, &cursor, &count)
72 assert.NoError(t, err)
73 assert.NotNil(t, actions)
74 assert.Equal(t, actions.Edges[0].Username, username)
75
76 actions, err = r.Query().Actions(ctx, &username, &bannerID, &clusterEdgeID, &batchID, &action, &status, &cursor, &count)
77 assert.Nil(t, actions)
78 assert.Error(t, err)
79 }
80
View as plain text