...

Source file src/edge-infra.dev/pkg/edge/api/graph/resolver/actions_queries.resolvers_test.go

Documentation: edge-infra.dev/pkg/edge/api/graph/resolver

     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