Skip to content

Commit 6bcd5ae

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 ad63ae5 commit 6bcd5ae

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
@@ -5739,62 +5739,55 @@ func (s *MethodTestSuite) TestAuthorizePrebuiltWorkspace() {
57395739
}
57405740

57415741
func (s *MethodTestSuite) TestUserSecrets() {
5742-
s.Run("GetUserSecretByUserIDAndName", s.Subtest(func(db database.Store, check *expects) {
5743-
user := dbgen.User(s.T(), db, database.User{})
5744-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5745-
UserID: user.ID,
5746-
})
5747-
arg := database.GetUserSecretByUserIDAndNameParams{
5748-
UserID: user.ID,
5749-
Name: userSecret.Name,
5750-
}
5751-
check.Args(arg).
5752-
Asserts(rbac.ResourceUserSecret.WithOwner(arg.UserID.String()), policy.ActionRead).
5753-
Returns(userSecret)
5754-
}))
5755-
s.Run("GetUserSecret", s.Subtest(func(db database.Store, check *expects) {
5756-
user := dbgen.User(s.T(), db, database.User{})
5757-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5758-
UserID: user.ID,
5759-
})
5760-
check.Args(userSecret.ID).
5761-
Asserts(userSecret, policy.ActionRead).
5762-
Returns(userSecret)
5763-
}))
5764-
s.Run("ListUserSecrets", s.Subtest(func(db database.Store, check *expects) {
5765-
user := dbgen.User(s.T(), db, database.User{})
5766-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5767-
UserID: user.ID,
5768-
})
5769-
check.Args(user.ID).
5770-
Asserts(rbac.ResourceUserSecret.WithOwner(user.ID.String()), policy.ActionRead).
5771-
Returns([]database.UserSecret{userSecret})
5772-
}))
5773-
s.Run("CreateUserSecret", s.Subtest(func(db database.Store, check *expects) {
5774-
user := dbgen.User(s.T(), db, database.User{})
5775-
arg := database.CreateUserSecretParams{
5776-
UserID: user.ID,
5777-
}
5778-
check.Args(arg).
5779-
Asserts(rbac.ResourceUserSecret.WithOwner(arg.UserID.String()), policy.ActionCreate)
5780-
}))
5781-
s.Run("UpdateUserSecret", s.Subtest(func(db database.Store, check *expects) {
5782-
user := dbgen.User(s.T(), db, database.User{})
5783-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5784-
UserID: user.ID,
5785-
})
5786-
arg := database.UpdateUserSecretParams{
5787-
ID: userSecret.ID,
5788-
}
5789-
check.Args(arg).
5790-
Asserts(userSecret, policy.ActionUpdate)
5791-
}))
5792-
s.Run("DeleteUserSecret", s.Subtest(func(db database.Store, check *expects) {
5793-
user := dbgen.User(s.T(), db, database.User{})
5794-
userSecret := dbgen.UserSecret(s.T(), db, database.UserSecret{
5795-
UserID: user.ID,
5796-
})
5797-
check.Args(userSecret.ID).
5798-
Asserts(userSecret, policy.ActionRead, userSecret, policy.ActionDelete)
5799-
}))
5742+
s.Run("GetUserSecretByUserIDAndName", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5743+
user := testutil.Fake(s.T(), faker, database.User{})
5744+
secret := testutil.Fake(s.T(), faker, database.UserSecret{UserID: user.ID})
5745+
arg := database.GetUserSecretByUserIDAndNameParams{UserID: user.ID, Name: secret.Name}
5746+
dbm.EXPECT().GetUserSecretByUserIDAndName(gomock.Any(), arg).Return(secret, nil).AnyTimes()
5747+
check.Args(arg).
5748+
Asserts(rbac.ResourceUserSecret.WithOwner(user.ID.String()), policy.ActionRead).
5749+
Returns(secret)
5750+
}))
5751+
s.Run("GetUserSecret", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5752+
secret := testutil.Fake(s.T(), faker, database.UserSecret{})
5753+
dbm.EXPECT().GetUserSecret(gomock.Any(), secret.ID).Return(secret, nil).AnyTimes()
5754+
check.Args(secret.ID).
5755+
Asserts(secret, policy.ActionRead).
5756+
Returns(secret)
5757+
}))
5758+
s.Run("ListUserSecrets", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5759+
user := testutil.Fake(s.T(), faker, database.User{})
5760+
secret := testutil.Fake(s.T(), faker, database.UserSecret{UserID: user.ID})
5761+
dbm.EXPECT().ListUserSecrets(gomock.Any(), user.ID).Return([]database.UserSecret{secret}, nil).AnyTimes()
5762+
check.Args(user.ID).
5763+
Asserts(rbac.ResourceUserSecret.WithOwner(user.ID.String()), policy.ActionRead).
5764+
Returns([]database.UserSecret{secret})
5765+
}))
5766+
s.Run("CreateUserSecret", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5767+
user := testutil.Fake(s.T(), faker, database.User{})
5768+
arg := database.CreateUserSecretParams{UserID: user.ID}
5769+
ret := testutil.Fake(s.T(), faker, database.UserSecret{UserID: user.ID})
5770+
dbm.EXPECT().CreateUserSecret(gomock.Any(), arg).Return(ret, nil).AnyTimes()
5771+
check.Args(arg).
5772+
Asserts(rbac.ResourceUserSecret.WithOwner(user.ID.String()), policy.ActionCreate).
5773+
Returns(ret)
5774+
}))
5775+
s.Run("UpdateUserSecret", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5776+
secret := testutil.Fake(s.T(), faker, database.UserSecret{})
5777+
updated := testutil.Fake(s.T(), faker, database.UserSecret{ID: secret.ID})
5778+
arg := database.UpdateUserSecretParams{ID: secret.ID}
5779+
dbm.EXPECT().GetUserSecret(gomock.Any(), secret.ID).Return(secret, nil).AnyTimes()
5780+
dbm.EXPECT().UpdateUserSecret(gomock.Any(), arg).Return(updated, nil).AnyTimes()
5781+
check.Args(arg).
5782+
Asserts(secret, policy.ActionUpdate).
5783+
Returns(updated)
5784+
}))
5785+
s.Run("DeleteUserSecret", s.Mocked(func(dbm *dbmock.MockStore, faker *gofakeit.Faker, check *expects) {
5786+
secret := testutil.Fake(s.T(), faker, database.UserSecret{})
5787+
dbm.EXPECT().GetUserSecret(gomock.Any(), secret.ID).Return(secret, nil).AnyTimes()
5788+
dbm.EXPECT().DeleteUserSecret(gomock.Any(), secret.ID).Return(nil).AnyTimes()
5789+
check.Args(secret.ID).
5790+
Asserts(secret, policy.ActionRead, secret, policy.ActionDelete).
5791+
Returns()
5792+
}))
58005793
}

0 commit comments

Comments
 (0)