| 15 | ) |
| 16 | |
| 17 | func MockedDatabaseWithAuthz(t testing.TB, logger slog.Logger) (*gomock.Controller, *dbmock.MockStore, database.Store, rbac.Authorizer) { |
| 18 | ctrl := gomock.NewController(t) |
| 19 | mDB := dbmock.NewMockStore(ctrl) |
| 20 | auth := rbac.NewStrictCachingAuthorizer(prometheus.NewRegistry()) |
| 21 | accessControlStore := &atomic.Pointer[dbauthz.AccessControlStore]{} |
| 22 | var acs dbauthz.AccessControlStore = dbauthz.AGPLTemplateAccessControlStore{} |
| 23 | accessControlStore.Store(&acs) |
| 24 | // dbauthz will call Wrappers() to check for wrapped databases |
| 25 | mDB.EXPECT().Wrappers().Return([]string{}).AnyTimes() |
| 26 | authDB := dbauthz.New(mDB, auth, logger, accessControlStore) |
| 27 | return ctrl, mDB, authDB, auth |
| 28 | } |