Skip to content

Commit a49b396

Browse files
committed
test(dbauthz): migrate TestUserSecrets to mocked db
- Convert UserSecrets subtests to s.Mocked using gomock - Add expectations for prefetch (GetUserSecret) and CRUD paths - Aligns with recent mocked migrations for CryptoKeys/DBCrypt
1 parent e791e47 commit a49b396

File tree

1 file changed

+51
-58
lines changed

1 file changed

+51
-58
lines changed

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 51 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -5661,62 +5661,55 @@ func (s *MethodTestSuite) TestAuthorizePrebuiltWorkspace() {
56615661
}
56625662

56635663
func (s *MethodTestSuite) TestUserSecrets() {
5664-
s.Run("GetUserSecretByUserIDAndName", s.Subtest(func(db database.Store, check *expects) {
5665-
user := dbgen.User(s.T(), db, database.User{})
5666-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5667-
UserID: user.ID,
5668-
})
5669-
arg := database.GetUserSecretByUserIDAndNameParams{
5670-
UserID: user.ID,
5671-
Name: userSecret.Name,
5672-
}
5673-
check.Args(arg).
5674-
Asserts(rbac.ResourceUserSecret.WithOwner(arg.UserID.String()), policy.ActionRead).
5675-
Returns(userSecret)
5676-
}))
5677-
s.Run("GetUserSecret", s.Subtest(func(db database.Store, check *expects) {
5678-
user := dbgen.User(s.T(), db, database.User{})
5679-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5680-
UserID: user.ID,
5681-
})
5682-
check.Args(userSecret.ID).
5683-
Asserts(userSecret, policy.ActionRead).
5684-
Returns(userSecret)
5685-
}))
5686-
s.Run("ListUserSecrets", s.Subtest(func(db database.Store, check *expects) {
5687-
user := dbgen.User(s.T(), db, database.User{})
5688-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5689-
UserID: user.ID,
5690-
})
5691-
check.Args(user.ID).
5692-
Asserts(rbac.ResourceUserSecret.WithOwner(user.ID.String()), policy.ActionRead).
5693-
Returns([]database.UserSecret{userSecret})
5694-
}))
5695-
s.Run("CreateUserSecret", s.Subtest(func(db database.Store, check *expects) {
5696-
user := dbgen.User(s.T(), db, database.User{})
5697-
arg := database.CreateUserSecretParams{
5698-
UserID: user.ID,
5699-
}
5700-
check.Args(arg).
5701-
Asserts(rbac.ResourceUserSecret.WithOwner(arg.UserID.String()), policy.ActionCreate)
5702-
}))
5703-
s.Run("UpdateUserSecret", s.Subtest(func(db database.Store, check *expects) {
5704-
user := dbgen.User(s.T(), db, database.User{})
5705-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5706-
UserID: user.ID,
5707-
})
5708-
arg := database.UpdateUserSecretParams{
5709-
ID: userSecret.ID,
5710-
}
5711-
check.Args(arg).
5712-
Asserts(userSecret, policy.ActionUpdate)
5713-
}))
5714-
s.Run("DeleteUserSecret", s.Subtest(func(db database.Store, check *expects) {
5715-
user := dbgen.User(s.T(), db, database.User{})
5716-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5717-
UserID: user.ID,
5718-
})
5719-
check.Args(userSecret.ID).
5720-
Asserts(userSecret, policy.ActionRead, userSecret, policy.ActionDelete)
5721-
}))
5664+
s.Run("GetUserSecretByUserIDAndName", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5665+
user := testutil.Fake(s.T(), faker, database.User{})
5666+
secret := testutil.Fake(s.T(), faker, database.UserSecret{UserID: user.ID})
5667+
arg := database.GetUserSecretByUserIDAndNameParams{UserID: user.ID, Name: secret.Name}
5668+
dbm.EXPECT().GetUserSecretByUserIDAndName(gomock.Any(), arg).Return(secret, nil).AnyTimes()
5669+
check.Args(arg).
5670+
Asserts(rbac.ResourceUserSecret.WithOwner(user.ID.String()), policy.ActionRead).
5671+
Returns(secret)
5672+
}))
5673+
s.Run("GetUserSecret", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5674+
secret := testutil.Fake(s.T(), faker, database.UserSecret{})
5675+
dbm.EXPECT().GetUserSecret(gomock.Any(), secret.ID).Return(secret, nil).AnyTimes()
5676+
check.Args(secret.ID).
5677+
Asserts(secret, policy.ActionRead).
5678+
Returns(secret)
5679+
}))
5680+
s.Run("ListUserSecrets", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5681+
user := testutil.Fake(s.T(), faker, database.User{})
5682+
secret := testutil.Fake(s.T(), faker, database.UserSecret{UserID: user.ID})
5683+
dbm.EXPECT().ListUserSecrets(gomock.Any(), user.ID).Return([]database.UserSecret{secret}, nil).AnyTimes()
5684+
check.Args(user.ID).
5685+
Asserts(rbac.ResourceUserSecret.WithOwner(user.ID.String()), policy.ActionRead).
5686+
Returns([]database.UserSecret{secret})
5687+
}))
5688+
s.Run("CreateUserSecret", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5689+
user := testutil.Fake(s.T(), faker, database.User{})
5690+
arg := database.CreateUserSecretParams{UserID: user.ID}
5691+
ret := testutil.Fake(s.T(), faker, database.UserSecret{UserID: user.ID})
5692+
dbm.EXPECT().CreateUserSecret(gomock.Any(), arg).Return(ret, nil).AnyTimes()
5693+
check.Args(arg).
5694+
Asserts(rbac.ResourceUserSecret.WithOwner(user.ID.String()), policy.ActionCreate).
5695+
Returns(ret)
5696+
}))
5697+
s.Run("UpdateUserSecret", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5698+
secret := testutil.Fake(s.T(), faker, database.UserSecret{})
5699+
updated := testutil.Fake(s.T(), faker, database.UserSecret{ID: secret.ID})
5700+
arg := database.UpdateUserSecretParams{ID: secret.ID}
5701+
dbm.EXPECT().GetUserSecret(gomock.Any(), secret.ID).Return(secret, nil).AnyTimes()
5702+
dbm.EXPECT().UpdateUserSecret(gomock.Any(), arg).Return(updated, nil).AnyTimes()
5703+
check.Args(arg).
5704+
Asserts(secret, policy.ActionUpdate).
5705+
Returns(updated)
5706+
}))
5707+
s.Run("DeleteUserSecret", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5708+
secret := testutil.Fake(s.T(), faker, database.UserSecret{})
5709+
dbm.EXPECT().GetUserSecret(gomock.Any(), secret.ID).Return(secret, nil).AnyTimes()
5710+
dbm.EXPECT().DeleteUserSecret(gomock.Any(), secret.ID).Return(nil).AnyTimes()
5711+
check.Args(secret.ID).
5712+
Asserts(secret, policy.ActionRead, secret, policy.ActionDelete).
5713+
Returns()
5714+
}))
57225715
}

0 commit comments

Comments
 (0)