Skip to content

Commit 52c9044

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 4818c28 commit 52c9044

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
@@ -5736,62 +5736,55 @@ func (s *MethodTestSuite) TestAuthorizePrebuiltWorkspace() {
57365736
}
57375737

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

0 commit comments

Comments
 (0)