Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commite9fd183

Browse files
hugodutkadannykopping
authored andcommitted
test(dbauthz): migrate TestSystemFunctions to mocked db
- Convert many System functions to s.Mocked with gomock- Add expectations for read/update/create/delete system paths- Fix UpdateWorkspaceBuildCostByID expectation (returns error)
1 parentf721f3d commite9fd183

File tree

1 file changed

+78
-81
lines changed

1 file changed

+78
-81
lines changed

‎coderd/database/dbauthz/dbauthz_test.go‎

Lines changed: 78 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -2653,116 +2653,113 @@ func (s *MethodTestSuite) TestCryptoKeys() {
26532653
}
26542654

26552655
func (s*MethodTestSuite)TestSystemFunctions() {
2656-
s.Run("UpdateUserLinkedID",s.Subtest(func(db database.Store,check*expects) {
2657-
u:=dbgen.User(s.T(),db, database.User{})
2658-
l:=dbgen.UserLink(s.T(),db, database.UserLink{UserID:u.ID})
2659-
check.Args(database.UpdateUserLinkedIDParams{
2660-
UserID:u.ID,
2661-
LinkedID:l.LinkedID,
2662-
LoginType:database.LoginTypeGithub,
2663-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns(l)
2664-
}))
2665-
s.Run("GetLatestWorkspaceAppStatusesByWorkspaceIDs",s.Subtest(func(dbdatabase.Store,check*expects) {
2666-
check.Args([]uuid.UUID{}).Asserts(rbac.ResourceSystem,policy.ActionRead)
2656+
s.Run("UpdateUserLinkedID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
2657+
u:=testutil.Fake(s.T(),faker, database.User{})
2658+
l:=testutil.Fake(s.T(),faker, database.UserLink{UserID:u.ID})
2659+
arg:=database.UpdateUserLinkedIDParams{UserID:u.ID,LinkedID:l.LinkedID,LoginType:database.LoginTypeGithub}
2660+
dbm.EXPECT().UpdateUserLinkedID(gomock.Any(),arg).Return(l,nil).AnyTimes()
2661+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns(l)
2662+
}))
2663+
s.Run("GetLatestWorkspaceAppStatusesByWorkspaceIDs",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2664+
ids:= []uuid.UUID{uuid.New()}
2665+
dbm.EXPECT().GetLatestWorkspaceAppStatusesByWorkspaceIDs(gomock.Any(),ids).Return([]database.WorkspaceAppStatus{},nil).AnyTimes()
2666+
check.Args(ids).Asserts(rbac.ResourceSystem,policy.ActionRead)
26672667
}))
2668-
s.Run("GetWorkspaceAppStatusesByAppIDs",s.Subtest(func(db database.Store,check*expects) {
2669-
check.Args([]uuid.UUID{}).Asserts(rbac.ResourceSystem,policy.ActionRead)
2668+
s.Run("GetWorkspaceAppStatusesByAppIDs",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2669+
ids:= []uuid.UUID{uuid.New()}
2670+
dbm.EXPECT().GetWorkspaceAppStatusesByAppIDs(gomock.Any(),ids).Return([]database.WorkspaceAppStatus{},nil).AnyTimes()
2671+
check.Args(ids).Asserts(rbac.ResourceSystem,policy.ActionRead)
26702672
}))
2671-
s.Run("GetLatestWorkspaceBuildsByWorkspaceIDs",s.Subtest(func(db database.Store,check*expects) {
2672-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
2673-
ws:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})
2674-
b:=dbgen.WorkspaceBuild(s.T(),db,database.WorkspaceBuild{WorkspaceID:ws.ID})
2675-
check.Args([]uuid.UUID{ws.ID}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(slice.New(b))
2673+
s.Run("GetLatestWorkspaceBuildsByWorkspaceIDs",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
2674+
wsID:=uuid.New()
2675+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
2676+
dbm.EXPECT().GetLatestWorkspaceBuildsByWorkspaceIDs(gomock.Any(),[]uuid.UUID{wsID}).Return([]database.WorkspaceBuild{b},nil).AnyTimes()
2677+
check.Args([]uuid.UUID{wsID}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(slice.New(b))
26762678
}))
2677-
s.Run("UpsertDefaultProxy",s.Subtest(func(db database.Store,check*expects) {
2678-
check.Args(database.UpsertDefaultProxyParams{}).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns()
2679+
s.Run("UpsertDefaultProxy",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2680+
arg:= database.UpsertDefaultProxyParams{}
2681+
dbm.EXPECT().UpsertDefaultProxy(gomock.Any(),arg).Return(nil).AnyTimes()
2682+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns()
26792683
}))
2680-
s.Run("GetUserLinkByLinkedID",s.Subtest(func(db database.Store,check*expects) {
2681-
u:=dbgen.User(s.T(),db, database.User{})
2682-
l:=dbgen.UserLink(s.T(),db, database.UserLink{UserID:u.ID})
2684+
s.Run("GetUserLinkByLinkedID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
2685+
l:=testutil.Fake(s.T(),faker, database.UserLink{})
2686+
dbm.EXPECT().GetUserLinkByLinkedID(gomock.Any(),l.LinkedID).Return(l,nil).AnyTimes()
26832687
check.Args(l.LinkedID).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
26842688
}))
2685-
s.Run("GetUserLinkByUserIDLoginType",s.Subtest(func(db database.Store,check*expects) {
2686-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
2687-
l:=dbgen.UserLink(s.T(),db, database.UserLink{})
2688-
check.Args(database.GetUserLinkByUserIDLoginTypeParams{
2689-
UserID:l.UserID,
2690-
LoginType:l.LoginType,
2691-
}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
2689+
s.Run("GetUserLinkByUserIDLoginType",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
2690+
l:=testutil.Fake(s.T(),faker, database.UserLink{})
2691+
arg:= database.GetUserLinkByUserIDLoginTypeParams{UserID:l.UserID,LoginType:l.LoginType}
2692+
dbm.EXPECT().GetUserLinkByUserIDLoginType(gomock.Any(),arg).Return(l,nil).AnyTimes()
2693+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
26922694
}))
2693-
s.Run("GetActiveUserCount",s.Subtest(func(db database.Store,check*expects) {
2695+
s.Run("GetActiveUserCount",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2696+
dbm.EXPECT().GetActiveUserCount(gomock.Any(),false).Return(int64(0),nil).AnyTimes()
26942697
check.Args(false).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(int64(0))
26952698
}))
2696-
s.Run("GetAuthorizationUserRoles",s.Subtest(func(db database.Store,check*expects) {
2697-
u:=dbgen.User(s.T(),db, database.User{})
2699+
s.Run("GetAuthorizationUserRoles",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
2700+
u:=testutil.Fake(s.T(),faker, database.User{})
2701+
dbm.EXPECT().GetAuthorizationUserRoles(gomock.Any(),u.ID).Return(database.GetAuthorizationUserRolesRow{},nil).AnyTimes()
26982702
check.Args(u.ID).Asserts(rbac.ResourceSystem,policy.ActionRead)
26992703
}))
2700-
s.Run("GetDERPMeshKey",s.Subtest(func(db database.Store,check*expects) {
2701-
db.InsertDERPMeshKey(context.Background(),"testing")
2704+
s.Run("GetDERPMeshKey",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2705+
dbm.EXPECT().GetDERPMeshKey(gomock.Any()).Return("testing",nil).AnyTimes()
27022706
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
27032707
}))
2704-
s.Run("InsertDERPMeshKey",s.Subtest(func(db database.Store,check*expects) {
2708+
s.Run("InsertDERPMeshKey",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2709+
dbm.EXPECT().InsertDERPMeshKey(gomock.Any(),"value").Return(nil).AnyTimes()
27052710
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionCreate).Returns()
27062711
}))
2707-
s.Run("InsertDeploymentID",s.Subtest(func(db database.Store,check*expects) {
2712+
s.Run("InsertDeploymentID",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2713+
dbm.EXPECT().InsertDeploymentID(gomock.Any(),"value").Return(nil).AnyTimes()
27082714
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionCreate).Returns()
27092715
}))
2710-
s.Run("InsertReplica",s.Subtest(func(db database.Store,check*expects) {
2711-
check.Args(database.InsertReplicaParams{
2712-
ID:uuid.New(),
2713-
}).Asserts(rbac.ResourceSystem,policy.ActionCreate)
2716+
s.Run("InsertReplica",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2717+
arg:=database.InsertReplicaParams{ID:uuid.New()}
2718+
dbm.EXPECT().InsertReplica(gomock.Any(),arg).Return(database.Replica{},nil).AnyTimes()
2719+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionCreate)
27142720
}))
2715-
s.Run("UpdateReplica",s.Subtest(func(db database.Store,check*expects) {
2716-
replica,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New()})
2717-
require.NoError(s.T(),err)
2718-
check.Args(database.UpdateReplicaParams{
2719-
ID:replica.ID,
2720-
DatabaseLatency:100,
2721-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
2721+
s.Run("UpdateReplica",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
2722+
rep:=testutil.Fake(s.T(),faker, database.Replica{})
2723+
arg:= database.UpdateReplicaParams{ID:rep.ID,DatabaseLatency:100}
2724+
dbm.EXPECT().UpdateReplica(gomock.Any(),arg).Return(rep,nil).AnyTimes()
2725+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
27222726
}))
2723-
s.Run("DeleteReplicasUpdatedBefore",s.Subtest(func(db database.Store,check*expects) {
2724-
_,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New(),UpdatedAt:time.Now()})
2725-
require.NoError(s.T(),err)
2726-
check.Args(time.Now().Add(time.Hour)).Asserts(rbac.ResourceSystem,policy.ActionDelete)
2727+
s.Run("DeleteReplicasUpdatedBefore",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2728+
t:=time.Now().Add(time.Hour)
2729+
dbm.EXPECT().DeleteReplicasUpdatedBefore(gomock.Any(),t).Return(nil).AnyTimes()
2730+
check.Args(t).Asserts(rbac.ResourceSystem,policy.ActionDelete)
27272731
}))
2728-
s.Run("GetReplicasUpdatedAfter",s.Subtest(func(db database.Store,check*expects) {
2729-
_,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New(),UpdatedAt:time.Now()})
2730-
require.NoError(s.T(),err)
2731-
check.Args(time.Now().Add(time.Hour*-1)).Asserts(rbac.ResourceSystem,policy.ActionRead)
2732+
s.Run("GetReplicasUpdatedAfter",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2733+
t:=time.Now().Add(-time.Hour)
2734+
dbm.EXPECT().GetReplicasUpdatedAfter(gomock.Any(),t).Return([]database.Replica{},nil).AnyTimes()
2735+
check.Args(t).Asserts(rbac.ResourceSystem,policy.ActionRead)
27322736
}))
2733-
s.Run("GetUserCount",s.Subtest(func(db database.Store,check*expects) {
2737+
s.Run("GetUserCount",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2738+
dbm.EXPECT().GetUserCount(gomock.Any(),false).Return(int64(0),nil).AnyTimes()
27342739
check.Args(false).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(int64(0))
27352740
}))
2736-
s.Run("GetTemplates",s.Subtest(func(db database.Store,check*expects) {
2737-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
2738-
_=dbgen.Template(s.T(),db, database.Template{})
2741+
s.Run("GetTemplates",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2742+
dbm.EXPECT().GetTemplates(gomock.Any()).Return([]database.Template{},nil).AnyTimes()
27392743
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
27402744
}))
2741-
s.Run("UpdateWorkspaceBuildCostByID",s.Subtest(func(db database.Store,check*expects) {
2742-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
2743-
b:=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{})
2744-
o:=b
2745-
o.DailyCost=10
2746-
check.Args(database.UpdateWorkspaceBuildCostByIDParams{
2747-
ID:b.ID,
2748-
DailyCost:10,
2749-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
2745+
s.Run("UpdateWorkspaceBuildCostByID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
2746+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
2747+
arg:= database.UpdateWorkspaceBuildCostByIDParams{ID:b.ID,DailyCost:10}
2748+
dbm.EXPECT().UpdateWorkspaceBuildCostByID(gomock.Any(),arg).Return(nil).AnyTimes()
2749+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
27502750
}))
2751-
s.Run("UpdateWorkspaceBuildProvisionerStateByID",s.Subtest(func(db database.Store,check*expects) {
2752-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
2753-
ws:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})
2754-
build:=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{WorkspaceID:ws.ID,JobID:uuid.New()})
2755-
check.Args(database.UpdateWorkspaceBuildProvisionerStateByIDParams{
2756-
ID:build.ID,
2757-
ProvisionerState: []byte("testing"),
2758-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
2751+
s.Run("UpdateWorkspaceBuildProvisionerStateByID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
2752+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
2753+
arg:= database.UpdateWorkspaceBuildProvisionerStateByIDParams{ID:b.ID,ProvisionerState: []byte("testing")}
2754+
dbm.EXPECT().UpdateWorkspaceBuildProvisionerStateByID(gomock.Any(),arg).Return(nil).AnyTimes()
2755+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
27592756
}))
2760-
s.Run("UpsertLastUpdateCheck",s.Subtest(func(db database.Store,check*expects) {
2757+
s.Run("UpsertLastUpdateCheck",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2758+
dbm.EXPECT().UpsertLastUpdateCheck(gomock.Any(),"value").Return(nil).AnyTimes()
27612759
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionUpdate)
27622760
}))
2763-
s.Run("GetLastUpdateCheck",s.Subtest(func(db database.Store,check*expects) {
2764-
err:=db.UpsertLastUpdateCheck(context.Background(),"value")
2765-
require.NoError(s.T(),err)
2761+
s.Run("GetLastUpdateCheck",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
2762+
dbm.EXPECT().GetLastUpdateCheck(gomock.Any()).Return("value",nil).AnyTimes()
27662763
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
27672764
}))
27682765
s.Run("GetWorkspaceBuildsCreatedAfter",s.Subtest(func(db database.Store,check*expects) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp