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

Function TestRolePurge

rest/role_api_test.go:27–65  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

25)
26
27func TestRolePurge(t *testing.T) {
28 rt := NewRestTester(t, nil)
29 defer rt.Close()
30 ds := rt.GetSingleDataStore()
31
32 // Create role
33 resp := rt.SendAdminRequest("PUT", "/db/_role/role", GetRolePayload(t, "", ds, []string{"channel"}))
34 RequireStatus(t, resp, http.StatusCreated)
35
36 // Delete role
37 resp = rt.SendAdminRequest("DELETE", "/db/_role/role", ``)
38 RequireStatus(t, resp, http.StatusOK)
39
40 // Ensure role is gone
41 resp = rt.SendAdminRequest("GET", "/db/_role/role", ``)
42 RequireStatus(t, resp, http.StatusNotFound)
43
44 // Ensure role is 'soft-deleted' and we can still get the doc
45 role, err := rt.GetDatabase().Authenticator(base.TestCtx(t)).GetRoleIncDeleted("role")
46 assert.NoError(t, err)
47 assert.NotNil(t, role)
48
49 // Re-create role
50 resp = rt.SendAdminRequest("PUT", "/db/_role/role", GetRolePayload(t, "", ds, []string{"channel"}))
51 RequireStatus(t, resp, http.StatusCreated)
52
53 // Delete role again but with purge flag
54 resp = rt.SendAdminRequest("DELETE", "/db/_role/role?purge=true", ``)
55 RequireStatus(t, resp, http.StatusOK)
56
57 // Ensure role is purged, can't access at all
58 role, err = rt.GetDatabase().Authenticator(base.TestCtx(t)).GetRoleIncDeleted("role")
59 assert.Nil(t, err)
60 assert.Nil(t, role)
61
62 // Ensure role returns 404 via REST call
63 resp = rt.SendAdminRequest("GET", "/db/_role/role", ``)
64 RequireStatus(t, resp, http.StatusNotFound)
65}
66
67func TestRoleAPI(t *testing.T) {
68

Callers

nothing calls this directly

Calls 10

CloseMethod · 0.95
GetSingleDataStoreMethod · 0.95
SendAdminRequestMethod · 0.95
GetDatabaseMethod · 0.95
TestCtxFunction · 0.92
NewRestTesterFunction · 0.85
GetRolePayloadFunction · 0.85
RequireStatusFunction · 0.85
GetRoleIncDeletedMethod · 0.80
AuthenticatorMethod · 0.45

Tested by

no test coverage detected