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

Commit1bbac6a

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 parentd5f03c2 commit1bbac6a

File tree

1 file changed

+84
-86
lines changed

1 file changed

+84
-86
lines changed

‎coderd/database/dbauthz/dbauthz_test.go‎

Lines changed: 84 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -3778,119 +3778,117 @@ func (s *MethodTestSuite) TestCryptoKeys() {
37783778
}
37793779

37803780
func (s*MethodTestSuite)TestSystemFunctions() {
3781-
s.Run("UpdateUserLinkedID",s.Subtest(func(db database.Store,check*expects) {
3782-
u:=dbgen.User(s.T(),db, database.User{})
3783-
l:=dbgen.UserLink(s.T(),db, database.UserLink{UserID:u.ID})
3784-
check.Args(database.UpdateUserLinkedIDParams{
3785-
UserID:u.ID,
3786-
LinkedID:l.LinkedID,
3787-
LoginType:database.LoginTypeGithub,
3788-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns(l)
3789-
}))
3790-
s.Run("GetLatestWorkspaceAppStatusesByWorkspaceIDs",s.Subtest(func(dbdatabase.Store,check*expects) {
3791-
check.Args([]uuid.UUID{}).Asserts(rbac.ResourceSystem,policy.ActionRead)
3781+
s.Run("UpdateUserLinkedID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3782+
u:=testutil.Fake(s.T(),faker, database.User{})
3783+
l:=testutil.Fake(s.T(),faker, database.UserLink{UserID:u.ID})
3784+
arg:=database.UpdateUserLinkedIDParams{UserID:u.ID,LinkedID:l.LinkedID,LoginType:database.LoginTypeGithub}
3785+
dbm.EXPECT().UpdateUserLinkedID(gomock.Any(),arg).Return(l,nil).AnyTimes()
3786+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns(l)
3787+
}))
3788+
s.Run("GetLatestWorkspaceAppStatusesByWorkspaceIDs",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3789+
ids:= []uuid.UUID{uuid.New()}
3790+
dbm.EXPECT().GetLatestWorkspaceAppStatusesByWorkspaceIDs(gomock.Any(),ids).Return([]database.WorkspaceAppStatus{},nil).AnyTimes()
3791+
check.Args(ids).Asserts(rbac.ResourceSystem,policy.ActionRead)
37923792
}))
3793-
s.Run("GetWorkspaceAppStatusesByAppIDs",s.Subtest(func(db database.Store,check*expects) {
3794-
check.Args([]uuid.UUID{}).Asserts(rbac.ResourceSystem,policy.ActionRead)
3793+
s.Run("GetWorkspaceAppStatusesByAppIDs",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3794+
ids:= []uuid.UUID{uuid.New()}
3795+
dbm.EXPECT().GetWorkspaceAppStatusesByAppIDs(gomock.Any(),ids).Return([]database.WorkspaceAppStatus{},nil).AnyTimes()
3796+
check.Args(ids).Asserts(rbac.ResourceSystem,policy.ActionRead)
37953797
}))
3796-
s.Run("GetLatestWorkspaceBuildsByWorkspaceIDs",s.Subtest(func(db database.Store,check*expects) {
3797-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3798-
ws:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})
3799-
b:=dbgen.WorkspaceBuild(s.T(),db,database.WorkspaceBuild{WorkspaceID:ws.ID})
3800-
check.Args([]uuid.UUID{ws.ID}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(slice.New(b))
3798+
s.Run("GetLatestWorkspaceBuildsByWorkspaceIDs",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3799+
wsID:=uuid.New()
3800+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
3801+
dbm.EXPECT().GetLatestWorkspaceBuildsByWorkspaceIDs(gomock.Any(),[]uuid.UUID{wsID}).Return([]database.WorkspaceBuild{b},nil).AnyTimes()
3802+
check.Args([]uuid.UUID{wsID}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(slice.New(b))
38013803
}))
3802-
s.Run("UpsertDefaultProxy",s.Subtest(func(db database.Store,check*expects) {
3803-
check.Args(database.UpsertDefaultProxyParams{}).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns()
3804+
s.Run("UpsertDefaultProxy",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3805+
arg:= database.UpsertDefaultProxyParams{}
3806+
dbm.EXPECT().UpsertDefaultProxy(gomock.Any(),arg).Return(nil).AnyTimes()
3807+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate).Returns()
38043808
}))
3805-
s.Run("GetUserLinkByLinkedID",s.Subtest(func(db database.Store,check*expects) {
3806-
u:=dbgen.User(s.T(),db, database.User{})
3807-
l:=dbgen.UserLink(s.T(),db, database.UserLink{UserID:u.ID})
3809+
s.Run("GetUserLinkByLinkedID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3810+
l:=testutil.Fake(s.T(),faker, database.UserLink{})
3811+
dbm.EXPECT().GetUserLinkByLinkedID(gomock.Any(),l.LinkedID).Return(l,nil).AnyTimes()
38083812
check.Args(l.LinkedID).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
38093813
}))
3810-
s.Run("GetUserLinkByUserIDLoginType",s.Subtest(func(db database.Store,check*expects) {
3811-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3812-
l:=dbgen.UserLink(s.T(),db, database.UserLink{})
3813-
check.Args(database.GetUserLinkByUserIDLoginTypeParams{
3814-
UserID:l.UserID,
3815-
LoginType:l.LoginType,
3816-
}).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
3814+
s.Run("GetUserLinkByUserIDLoginType",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3815+
l:=testutil.Fake(s.T(),faker, database.UserLink{})
3816+
arg:= database.GetUserLinkByUserIDLoginTypeParams{UserID:l.UserID,LoginType:l.LoginType}
3817+
dbm.EXPECT().GetUserLinkByUserIDLoginType(gomock.Any(),arg).Return(l,nil).AnyTimes()
3818+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(l)
38173819
}))
3818-
s.Run("GetActiveUserCount",s.Subtest(func(db database.Store,check*expects) {
3820+
s.Run("GetActiveUserCount",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3821+
dbm.EXPECT().GetActiveUserCount(gomock.Any(),false).Return(int64(0),nil).AnyTimes()
38193822
check.Args(false).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(int64(0))
38203823
}))
3821-
s.Run("GetUnexpiredLicenses",s.Subtest(func(db database.Store,check*expects) {
3824+
s.Run("GetUnexpiredLicenses",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3825+
dbm.EXPECT().GetUnexpiredLicenses(gomock.Any()).Return([]database.License{},nil).AnyTimes()
38223826
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
38233827
}))
3824-
s.Run("GetAuthorizationUserRoles",s.Subtest(func(db database.Store,check*expects) {
3825-
u:=dbgen.User(s.T(),db, database.User{})
3828+
s.Run("GetAuthorizationUserRoles",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3829+
u:=testutil.Fake(s.T(),faker, database.User{})
3830+
dbm.EXPECT().GetAuthorizationUserRoles(gomock.Any(),u.ID).Return(database.GetAuthorizationUserRolesRow{},nil).AnyTimes()
38263831
check.Args(u.ID).Asserts(rbac.ResourceSystem,policy.ActionRead)
38273832
}))
3828-
s.Run("GetDERPMeshKey",s.Subtest(func(db database.Store,check*expects) {
3829-
db.InsertDERPMeshKey(context.Background(),"testing")
3833+
s.Run("GetDERPMeshKey",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3834+
dbm.EXPECT().GetDERPMeshKey(gomock.Any()).Return("testing",nil).AnyTimes()
38303835
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
38313836
}))
3832-
s.Run("InsertDERPMeshKey",s.Subtest(func(db database.Store,check*expects) {
3837+
s.Run("InsertDERPMeshKey",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3838+
dbm.EXPECT().InsertDERPMeshKey(gomock.Any(),"value").Return(nil).AnyTimes()
38333839
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionCreate).Returns()
38343840
}))
3835-
s.Run("InsertDeploymentID",s.Subtest(func(db database.Store,check*expects) {
3841+
s.Run("InsertDeploymentID",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3842+
dbm.EXPECT().InsertDeploymentID(gomock.Any(),"value").Return(nil).AnyTimes()
38363843
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionCreate).Returns()
38373844
}))
3838-
s.Run("InsertReplica",s.Subtest(func(db database.Store,check*expects) {
3839-
check.Args(database.InsertReplicaParams{
3840-
ID:uuid.New(),
3841-
}).Asserts(rbac.ResourceSystem,policy.ActionCreate)
3842-
}))
3843-
s.Run("UpdateReplica",s.Subtest(func(db database.Store,check*expects) {
3844-
replica,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New()})
3845-
require.NoError(s.T(),err)
3846-
check.Args(database.UpdateReplicaParams{
3847-
ID:replica.ID,
3848-
DatabaseLatency:100,
3849-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
3850-
}))
3851-
s.Run("DeleteReplicasUpdatedBefore",s.Subtest(func(db database.Store,check*expects) {
3852-
_,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New(),UpdatedAt:time.Now()})
3853-
require.NoError(s.T(),err)
3854-
check.Args(time.Now().Add(time.Hour)).Asserts(rbac.ResourceSystem,policy.ActionDelete)
3855-
}))
3856-
s.Run("GetReplicasUpdatedAfter",s.Subtest(func(db database.Store,check*expects) {
3857-
_,err:=db.InsertReplica(context.Background(), database.InsertReplicaParams{ID:uuid.New(),UpdatedAt:time.Now()})
3858-
require.NoError(s.T(),err)
3859-
check.Args(time.Now().Add(time.Hour*-1)).Asserts(rbac.ResourceSystem,policy.ActionRead)
3860-
}))
3861-
s.Run("GetUserCount",s.Subtest(func(db database.Store,check*expects) {
3845+
s.Run("InsertReplica",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3846+
arg:= database.InsertReplicaParams{ID:uuid.New()}
3847+
dbm.EXPECT().InsertReplica(gomock.Any(),arg).Return(database.Replica{},nil).AnyTimes()
3848+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionCreate)
3849+
}))
3850+
s.Run("UpdateReplica",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3851+
rep:=testutil.Fake(s.T(),faker, database.Replica{})
3852+
arg:= database.UpdateReplicaParams{ID:rep.ID,DatabaseLatency:100}
3853+
dbm.EXPECT().UpdateReplica(gomock.Any(),arg).Return(rep,nil).AnyTimes()
3854+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
3855+
}))
3856+
s.Run("DeleteReplicasUpdatedBefore",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3857+
t:=time.Now().Add(time.Hour)
3858+
dbm.EXPECT().DeleteReplicasUpdatedBefore(gomock.Any(),t).Return(nil).AnyTimes()
3859+
check.Args(t).Asserts(rbac.ResourceSystem,policy.ActionDelete)
3860+
}))
3861+
s.Run("GetReplicasUpdatedAfter",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3862+
t:=time.Now().Add(-time.Hour)
3863+
dbm.EXPECT().GetReplicasUpdatedAfter(gomock.Any(),t).Return([]database.Replica{},nil).AnyTimes()
3864+
check.Args(t).Asserts(rbac.ResourceSystem,policy.ActionRead)
3865+
}))
3866+
s.Run("GetUserCount",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3867+
dbm.EXPECT().GetUserCount(gomock.Any(),false).Return(int64(0),nil).AnyTimes()
38623868
check.Args(false).Asserts(rbac.ResourceSystem,policy.ActionRead).Returns(int64(0))
38633869
}))
3864-
s.Run("GetTemplates",s.Subtest(func(db database.Store,check*expects) {
3865-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3866-
_=dbgen.Template(s.T(),db, database.Template{})
3870+
s.Run("GetTemplates",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3871+
dbm.EXPECT().GetTemplates(gomock.Any()).Return([]database.Template{},nil).AnyTimes()
38673872
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
38683873
}))
3869-
s.Run("UpdateWorkspaceBuildCostByID",s.Subtest(func(db database.Store,check*expects) {
3870-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3871-
b:=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{})
3872-
o:=b
3873-
o.DailyCost=10
3874-
check.Args(database.UpdateWorkspaceBuildCostByIDParams{
3875-
ID:b.ID,
3876-
DailyCost:10,
3877-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
3874+
s.Run("UpdateWorkspaceBuildCostByID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3875+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
3876+
arg:= database.UpdateWorkspaceBuildCostByIDParams{ID:b.ID,DailyCost:10}
3877+
dbm.EXPECT().UpdateWorkspaceBuildCostByID(gomock.Any(),arg).Return(nil).AnyTimes()
3878+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
38783879
}))
3879-
s.Run("UpdateWorkspaceBuildProvisionerStateByID",s.Subtest(func(db database.Store,check*expects) {
3880-
dbtestutil.DisableForeignKeysAndTriggers(s.T(),db)
3881-
ws:=dbgen.Workspace(s.T(),db, database.WorkspaceTable{})
3882-
build:=dbgen.WorkspaceBuild(s.T(),db, database.WorkspaceBuild{WorkspaceID:ws.ID,JobID:uuid.New()})
3883-
check.Args(database.UpdateWorkspaceBuildProvisionerStateByIDParams{
3884-
ID:build.ID,
3885-
ProvisionerState: []byte("testing"),
3886-
}).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
3880+
s.Run("UpdateWorkspaceBuildProvisionerStateByID",s.Mocked(func(dbm*dbmock.MockStore,faker*gofakeit.Faker,check*expects) {
3881+
b:=testutil.Fake(s.T(),faker, database.WorkspaceBuild{})
3882+
arg:= database.UpdateWorkspaceBuildProvisionerStateByIDParams{ID:b.ID,ProvisionerState: []byte("testing")}
3883+
dbm.EXPECT().UpdateWorkspaceBuildProvisionerStateByID(gomock.Any(),arg).Return(nil).AnyTimes()
3884+
check.Args(arg).Asserts(rbac.ResourceSystem,policy.ActionUpdate)
38873885
}))
3888-
s.Run("UpsertLastUpdateCheck",s.Subtest(func(db database.Store,check*expects) {
3886+
s.Run("UpsertLastUpdateCheck",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3887+
dbm.EXPECT().UpsertLastUpdateCheck(gomock.Any(),"value").Return(nil).AnyTimes()
38893888
check.Args("value").Asserts(rbac.ResourceSystem,policy.ActionUpdate)
38903889
}))
3891-
s.Run("GetLastUpdateCheck",s.Subtest(func(db database.Store,check*expects) {
3892-
err:=db.UpsertLastUpdateCheck(context.Background(),"value")
3893-
require.NoError(s.T(),err)
3890+
s.Run("GetLastUpdateCheck",s.Mocked(func(dbm*dbmock.MockStore,_*gofakeit.Faker,check*expects) {
3891+
dbm.EXPECT().GetLastUpdateCheck(gomock.Any()).Return("value",nil).AnyTimes()
38943892
check.Args().Asserts(rbac.ResourceSystem,policy.ActionRead)
38953893
}))
38963894
s.Run("GetWorkspaceBuildsCreatedAfter",s.Subtest(func(db database.Store,check*expects) {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp