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

Function TestRoleQuery

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

Source from the content-addressed store, hash-verified

25)
26
27func TestRoleQuery(t *testing.T) {
28 testCases := []struct {
29 useLegacySyncDocsIndex bool
30 }{
31 {
32 useLegacySyncDocsIndex: false,
33 },
34 {
35 useLegacySyncDocsIndex: true,
36 },
37 }
38
39 for _, testCase := range testCases {
40 t.Run(fmt.Sprintf("useLegacySyncDocsIndex=%t", testCase.useLegacySyncDocsIndex), func(t *testing.T) {
41 database := setupIndexAndDB(t, testIndexCreationOptions{
42 useLegacySyncDocsIndex: testCase.useLegacySyncDocsIndex,
43 numPartitions: db.DefaultNumIndexPartitions,
44 useXattrs: base.TestUseXattrs(),
45 })
46
47 ctx := database.AddDatabaseLogContext(base.TestCtx(t))
48 authenticator := database.Authenticator(ctx)
49 require.NotNil(t, authenticator, "database.Authenticator(ctx) returned nil")
50 // Add roles
51 for i := 1; i <= 5; i++ {
52 role, err := authenticator.NewRole(fmt.Sprintf("role%d", i), base.SetOf("ABC"))
53 require.NoError(t, err, "Error creating new role")
54 require.NoError(t, authenticator.Save(role))
55 }
56
57 // Delete 1 role
58 role1, err := authenticator.NewRole("role1", base.SetOf("ABC"))
59 require.NoError(t, err)
60 require.NoError(t, database.DeleteRole(ctx, role1.Name(), false))
61
62 testCases := []struct {
63 name string
64 expectedRoles int
65 }{
66 {
67 name: "QueryRoles",
68 expectedRoles: 4,
69 },
70 {
71 name: "QueryAllRoles",
72 expectedRoles: 5,
73 },
74 }
75 for _, testCase := range testCases {
76 t.Run(testCase.name, func(t *testing.T) {
77 var results sgbucket.QueryResultIterator
78 var queryErr error
79 switch testCase.name {
80 case "QueryRoles":
81 // Standard query
82 results, queryErr = database.QueryRoles(ctx, "", 0)
83 case "QueryAllRoles":
84 results, queryErr = database.QueryAllRoles(ctx, "", 0)

Callers

nothing calls this directly

Calls 15

TestUseXattrsFunction · 0.92
TestCtxFunction · 0.92
SetOfFunction · 0.92
setupIndexAndDBFunction · 0.85
AddDatabaseLogContextMethod · 0.80
NewRoleMethod · 0.80
SaveMethod · 0.80
QueryRolesMethod · 0.80
QueryAllRolesMethod · 0.80
RunMethod · 0.65
NameMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected