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

Commit0adf6d0

Browse files
committed
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 parenta19dfa9 commit0adf6d0

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
@@ -3698,116 +3698,113 @@ func (s *MethodTestSuite) TestCryptoKeys() {
36983698
}
36993699

37003700
func (s*MethodTestSuite)TestSystemFunctions() {
3701-
s.Run("UpdateUserLinkedID",s.Subtest(func(db database.Store,check*expects) {
3702-
u:=dbgen.User(s.T(),db, database.User{})
3703-
l:=dbgen.UserLink(s.T(),db, database.UserLink{UserID:u.ID})
3704-
check.Args(database.UpdateUserLinkedIDParams{
3705-
UserID:u.ID,
3706-
LinkedID:l.LinkedID,
3707-
LoginType:database.LoginTypeGithub,
3708-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns(l)
3709-
}))
3710-
s.Run("GetLatestWorkspaceAppStatusesByWorkspaceIDs",s.Subtest(func(dbdatabase.Store,check*expects) {
3711-
check.Args([]uuid.UUID{}).Asserts(rbac.ResourceSystem,policy.ActionRead)
3701+
s.Run("UpdateUserLinkedID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3702+
u:=testutil.Fake(s.T(),faker, database.User{})
3703+
l:=testutil.Fake(s.T(),faker, database.UserLink{UserID:u.ID})
3704+
arg:=database.UpdateUserLinkedIDParams{UserID:u.ID,LinkedID:l.LinkedID,LoginType:database.LoginTypeGithub}
3705+
dbm.EXPECT().UpdateUserLinkedID(gomock.Any(),arg).Return(l,nil).AnyTimes()
3706+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns(l)
3707+
}))
3708+
s.Run("GetLatestWorkspaceAppStatusesByWorkspaceIDs",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3709+
ids:= []uuid.UUID{uuid.New()}
3710+
dbm.EXPECT().GetLatestWorkspaceAppStatusesByWorkspaceIDs(gomock.Any(),ids).Return([]database.WorkspaceAppStatus{},nil).AnyTimes()
3711+
check.Args(ids).Asserts(rbac.ResourceSystem,policy.ActionRead)
37123712
}))
3713-
s.Run("GetWorkspaceAppStatusesByAppIDs",s.Subtest(func(db database.Store,check*expects) {
3714-
check.Args([]uuid.UUID{}).Asserts(rbac.ResourceSystem,policy.ActionRead)
3713+
s.Run("GetWorkspaceAppStatusesByAppIDs",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3714+
ids:= []uuid.UUID{uuid.New()}
3715+
dbm.EXPECT().GetWorkspaceAppStatusesByAppIDs(gomock.Any(),ids).Return([]database.WorkspaceAppStatus{},nil).AnyTimes()
3716+
check.Args(ids).Asserts(rbac.ResourceSystem,policy.ActionRead)
37153717
}))
3716-
s.Run("GetLatestWorkspaceBuildsByWorkspaceIDs",s.Subtest(func(db database.Store,check*expects) {
3717-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3718-
ws:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})
3719-
b:=dbgen.WorkspaceBuild(s.T(),db,database.WorkspaceBuild{WorkspaceID:ws.ID})
3720-
check.Args([]uuid.UUID{ws.ID}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(slice.New(b))
3718+
s.Run("GetLatestWorkspaceBuildsByWorkspaceIDs",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3719+
wsID:=uuid.New()
3720+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
3721+
dbm.EXPECT().GetLatestWorkspaceBuildsByWorkspaceIDs(gomock.Any(),[]uuid.UUID{wsID}).Return([]database.WorkspaceBuild{b},nil).AnyTimes()
3722+
check.Args([]uuid.UUID{wsID}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(slice.New(b))
37213723
}))
3722-
s.Run("UpsertDefaultProxy",s.Subtest(func(db database.Store,check*expects) {
3723-
check.Args(database.UpsertDefaultProxyParams{}).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns()
3724+
s.Run("UpsertDefaultProxy",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3725+
arg:= database.UpsertDefaultProxyParams{}
3726+
dbm.EXPECT().UpsertDefaultProxy(gomock.Any(),arg).Return(nil).AnyTimes()
3727+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns()
37243728
}))
3725-
s.Run("GetUserLinkByLinkedID",s.Subtest(func(db database.Store,check*expects) {
3726-
u:=dbgen.User(s.T(),db, database.User{})
3727-
l:=dbgen.UserLink(s.T(),db, database.UserLink{UserID:u.ID})
3729+
s.Run("GetUserLinkByLinkedID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3730+
l:=testutil.Fake(s.T(),faker, database.UserLink{})
3731+
dbm.EXPECT().GetUserLinkByLinkedID(gomock.Any(),l.LinkedID).Return(l,nil).AnyTimes()
37283732
check.Args(l.LinkedID).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
37293733
}))
3730-
s.Run("GetUserLinkByUserIDLoginType",s.Subtest(func(db database.Store,check*expects) {
3731-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3732-
l:=dbgen.UserLink(s.T(),db, database.UserLink{})
3733-
check.Args(database.GetUserLinkByUserIDLoginTypeParams{
3734-
UserID:l.UserID,
3735-
LoginType:l.LoginType,
3736-
}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
3734+
s.Run("GetUserLinkByUserIDLoginType",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3735+
l:=testutil.Fake(s.T(),faker, database.UserLink{})
3736+
arg:= database.GetUserLinkByUserIDLoginTypeParams{UserID:l.UserID,LoginType:l.LoginType}
3737+
dbm.EXPECT().GetUserLinkByUserIDLoginType(gomock.Any(),arg).Return(l,nil).AnyTimes()
3738+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
37373739
}))
3738-
s.Run("GetActiveUserCount",s.Subtest(func(db database.Store,check*expects) {
3740+
s.Run("GetActiveUserCount",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3741+
dbm.EXPECT().GetActiveUserCount(gomock.Any(),false).Return(int64(0),nil).AnyTimes()
37393742
check.Args(false).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(int64(0))
37403743
}))
3741-
s.Run("GetAuthorizationUserRoles",s.Subtest(func(db database.Store,check*expects) {
3742-
u:=dbgen.User(s.T(),db, database.User{})
3744+
s.Run("GetAuthorizationUserRoles",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3745+
u:=testutil.Fake(s.T(),faker, database.User{})
3746+
dbm.EXPECT().GetAuthorizationUserRoles(gomock.Any(),u.ID).Return(database.GetAuthorizationUserRolesRow{},nil).AnyTimes()
37433747
check.Args(u.ID).Asserts(rbac.ResourceSystem,policy.ActionRead)
37443748
}))
3745-
s.Run("GetDERPMeshKey",s.Subtest(func(db database.Store,check*expects) {
3746-
db.InsertDERPMeshKey(context.Background(),"testing")
3749+
s.Run("GetDERPMeshKey",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3750+
dbm.EXPECT().GetDERPMeshKey(gomock.Any()).Return("testing",nil).AnyTimes()
37473751
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
37483752
}))
3749-
s.Run("InsertDERPMeshKey",s.Subtest(func(db database.Store,check*expects) {
3753+
s.Run("InsertDERPMeshKey",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3754+
dbm.EXPECT().InsertDERPMeshKey(gomock.Any(),"value").Return(nil).AnyTimes()
37503755
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionCreate).Returns()
37513756
}))
3752-
s.Run("InsertDeploymentID",s.Subtest(func(db database.Store,check*expects) {
3757+
s.Run("InsertDeploymentID",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3758+
dbm.EXPECT().InsertDeploymentID(gomock.Any(),"value").Return(nil).AnyTimes()
37533759
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionCreate).Returns()
37543760
}))
3755-
s.Run("InsertReplica",s.Subtest(func(db database.Store,check*expects) {
3756-
check.Args(database.InsertReplicaParams{
3757-
ID:uuid.New(),
3758-
}).Asserts(rbac.ResourceSystem,policy.ActionCreate)
3761+
s.Run("InsertReplica",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3762+
arg:=database.InsertReplicaParams{ID:uuid.New()}
3763+
dbm.EXPECT().InsertReplica(gomock.Any(),arg).Return(database.Replica{},nil).AnyTimes()
3764+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionCreate)
37593765
}))
3760-
s.Run("UpdateReplica",s.Subtest(func(db database.Store,check*expects) {
3761-
replica,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New()})
3762-
require.NoError(s.T(),err)
3763-
check.Args(database.UpdateReplicaParams{
3764-
ID:replica.ID,
3765-
DatabaseLatency:100,
3766-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
3766+
s.Run("UpdateReplica",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3767+
rep:=testutil.Fake(s.T(),faker, database.Replica{})
3768+
arg:= database.UpdateReplicaParams{ID:rep.ID,DatabaseLatency:100}
3769+
dbm.EXPECT().UpdateReplica(gomock.Any(),arg).Return(rep,nil).AnyTimes()
3770+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
37673771
}))
3768-
s.Run("DeleteReplicasUpdatedBefore",s.Subtest(func(db database.Store,check*expects) {
3769-
_,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New(),UpdatedAt:time.Now()})
3770-
require.NoError(s.T(),err)
3771-
check.Args(time.Now().Add(time.Hour)).Asserts(rbac.ResourceSystem,policy.ActionDelete)
3772+
s.Run("DeleteReplicasUpdatedBefore",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3773+
t:=time.Now().Add(time.Hour)
3774+
dbm.EXPECT().DeleteReplicasUpdatedBefore(gomock.Any(),t).Return(nil).AnyTimes()
3775+
check.Args(t).Asserts(rbac.ResourceSystem,policy.ActionDelete)
37723776
}))
3773-
s.Run("GetReplicasUpdatedAfter",s.Subtest(func(db database.Store,check*expects) {
3774-
_,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New(),UpdatedAt:time.Now()})
3775-
require.NoError(s.T(),err)
3776-
check.Args(time.Now().Add(time.Hour*-1)).Asserts(rbac.ResourceSystem,policy.ActionRead)
3777+
s.Run("GetReplicasUpdatedAfter",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3778+
t:=time.Now().Add(-time.Hour)
3779+
dbm.EXPECT().GetReplicasUpdatedAfter(gomock.Any(),t).Return([]database.Replica{},nil).AnyTimes()
3780+
check.Args(t).Asserts(rbac.ResourceSystem,policy.ActionRead)
37773781
}))
3778-
s.Run("GetUserCount",s.Subtest(func(db database.Store,check*expects) {
3782+
s.Run("GetUserCount",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3783+
dbm.EXPECT().GetUserCount(gomock.Any(),false).Return(int64(0),nil).AnyTimes()
37793784
check.Args(false).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(int64(0))
37803785
}))
3781-
s.Run("GetTemplates",s.Subtest(func(db database.Store,check*expects) {
3782-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3783-
_=dbgen.Template(s.T(),db, database.Template{})
3786+
s.Run("GetTemplates",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3787+
dbm.EXPECT().GetTemplates(gomock.Any()).Return([]database.Template{},nil).AnyTimes()
37843788
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
37853789
}))
3786-
s.Run("UpdateWorkspaceBuildCostByID",s.Subtest(func(db database.Store,check*expects) {
3787-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3788-
b:=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{})
3789-
o:=b
3790-
o.DailyCost=10
3791-
check.Args(database.UpdateWorkspaceBuildCostByIDParams{
3792-
ID:b.ID,
3793-
DailyCost:10,
3794-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
3790+
s.Run("UpdateWorkspaceBuildCostByID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3791+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
3792+
arg:= database.UpdateWorkspaceBuildCostByIDParams{ID:b.ID,DailyCost:10}
3793+
dbm.EXPECT().UpdateWorkspaceBuildCostByID(gomock.Any(),arg).Return(nil).AnyTimes()
3794+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
37953795
}))
3796-
s.Run("UpdateWorkspaceBuildProvisionerStateByID",s.Subtest(func(db database.Store,check*expects) {
3797-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3798-
ws:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})
3799-
build:=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{WorkspaceID:ws.ID,JobID:uuid.New()})
3800-
check.Args(database.UpdateWorkspaceBuildProvisionerStateByIDParams{
3801-
ID:build.ID,
3802-
ProvisionerState: []byte("testing"),
3803-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
3796+
s.Run("UpdateWorkspaceBuildProvisionerStateByID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3797+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
3798+
arg:= database.UpdateWorkspaceBuildProvisionerStateByIDParams{ID:b.ID,ProvisionerState: []byte("testing")}
3799+
dbm.EXPECT().UpdateWorkspaceBuildProvisionerStateByID(gomock.Any(),arg).Return(nil).AnyTimes()
3800+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
38043801
}))
3805-
s.Run("UpsertLastUpdateCheck",s.Subtest(func(db database.Store,check*expects) {
3802+
s.Run("UpsertLastUpdateCheck",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3803+
dbm.EXPECT().UpsertLastUpdateCheck(gomock.Any(),"value").Return(nil).AnyTimes()
38063804
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionUpdate)
38073805
}))
3808-
s.Run("GetLastUpdateCheck",s.Subtest(func(db database.Store,check*expects) {
3809-
err:=db.UpsertLastUpdateCheck(context.Background(),"value")
3810-
require.NoError(s.T(),err)
3806+
s.Run("GetLastUpdateCheck",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3807+
dbm.EXPECT().GetLastUpdateCheck(gomock.Any()).Return("value",nil).AnyTimes()
38113808
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
38123809
}))
38133810
s.Run("GetWorkspaceBuildsCreatedAfter",s.Subtest(func(db database.Store,check*expects) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp