MCPcopy Create free account
hub / github.com/couchbase/sync_gateway / TestGetRoleIDs

Function TestGetRoleIDs

db/indextest/indextest_test.go:189–247  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

187}
188
189func TestGetRoleIDs(t *testing.T) {
190 testCases := []struct {
191 useLegacySyncDocsIndex bool
192 }{
193 {
194 useLegacySyncDocsIndex: false,
195 },
196 {
197 useLegacySyncDocsIndex: true,
198 },
199 }
200
201 for _, testCase := range testCases {
202 t.Run(fmt.Sprintf("useLegacySyncDocsIndex=%t", testCase.useLegacySyncDocsIndex), func(t *testing.T) {
203 database := setupIndexAndDB(t, testIndexCreationOptions{
204 useLegacySyncDocsIndex: testCase.useLegacySyncDocsIndex,
205 numPartitions: db.DefaultNumIndexPartitions,
206 useXattrs: base.TestUseXattrs(),
207 })
208
209 ctx := database.AddDatabaseLogContext(base.TestCtx(t))
210 authenticator := database.Authenticator(ctx)
211
212 rolename1 := uuid.NewString()
213 rolename2 := uuid.NewString()
214
215 role1, err := authenticator.NewRole(rolename1, nil)
216 require.NoError(t, err)
217 require.NoError(t, authenticator.Save(role1))
218
219 role2, err := authenticator.NewRole(rolename2, nil)
220 require.NoError(t, err)
221 require.NoError(t, authenticator.Save(role2))
222
223 err = database.DeleteRole(ctx, role2.Name(), false)
224 require.NoError(t, err)
225 roleGet, err := authenticator.GetRoleIncDeleted(role2.Name())
226 require.NoError(t, err)
227 require.True(t, roleGet.IsDeleted())
228
229 t.Log("role1:", role1.Name())
230 t.Log("role2:", role2.Name())
231
232 for _, includeDeleted := range []bool{false, true} {
233 t.Run(fmt.Sprintf("includeDeleted=%t", includeDeleted), func(t *testing.T) {
234 // require roles
235 roles, err := database.GetRoleIDs(ctx, database.UseViews(), includeDeleted)
236 expectedRoles := []string{role1.Name()}
237 if includeDeleted {
238 expectedRoles = append(expectedRoles, role2.Name())
239 }
240
241 require.NoError(t, err)
242 require.ElementsMatch(t, expectedRoles, roles)
243 })
244 }
245 })
246 }

Callers

nothing calls this directly

Calls 15

TestUseXattrsFunction · 0.92
TestCtxFunction · 0.92
setupIndexAndDBFunction · 0.85
AddDatabaseLogContextMethod · 0.80
NewRoleMethod · 0.80
SaveMethod · 0.80
GetRoleIncDeletedMethod · 0.80
GetRoleIDsMethod · 0.80
UseViewsMethod · 0.80
RunMethod · 0.65
NameMethod · 0.65
IsDeletedMethod · 0.65

Tested by

no test coverage detected