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

Function TestRoleAPI

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

Source from the content-addressed store, hash-verified

65}
66
67func TestRoleAPI(t *testing.T) {
68
69 rt := NewRestTester(t, nil)
70 defer rt.Close()
71 ds := rt.GetSingleDataStore()
72
73 // PUT a role
74 RequireStatus(t, rt.SendAdminRequest("GET", "/db/_role/hipster", ""), 404)
75 response := rt.SendAdminRequest("PUT", "/db/_role/hipster", GetRolePayload(t, "", ds, []string{"fedoras", "fixies"}))
76 RequireStatus(t, response, 201)
77
78 response = rt.SendAdminRequest("PUT", "/db/_role/testdeleted", GetRolePayload(t, "", ds, []string{"fedoras", "fixies"}))
79 RequireStatus(t, response, 201)
80 RequireStatus(t, rt.SendAdminRequest("DELETE", "/db/_role/testdeleted", ""), 200)
81
82 // GET the role and make sure the result is OK
83 response = rt.SendAdminRequest("GET", "/db/_role/hipster", "")
84 RequireStatus(t, response, 200)
85 role := auth.PrincipalConfig{}
86 require.NoError(t, base.JSONUnmarshal(response.Body.Bytes(), &role))
87 assert.Equal(t, "hipster", *role.Name)
88 var expPassword *string
89 assert.Equal(t, expPassword, role.Password)
90
91 response = rt.SendAdminRequest("GET", "/db/_role/", "")
92 RequireStatus(t, response, 200)
93 assert.Equal(t, `["hipster"]`, response.Body.String())
94
95 // DELETE the role
96 RequireStatus(t, rt.SendAdminRequest("DELETE", "/db/_role/hipster", ""), 200)
97 RequireStatus(t, rt.SendAdminRequest("GET", "/db/_role/hipster", ""), 404)
98
99 // POST a role
100 response = rt.SendAdminRequest("POST", "/db/_role", GetRolePayload(t, "hipster", ds, []string{"fedoras", "fixies"}))
101 RequireStatus(t, response, 301)
102 response = rt.SendAdminRequest("POST", "/db/_role/", GetRolePayload(t, "hipster", ds, []string{"fedoras", "fixies"}))
103 RequireStatus(t, response, 201)
104 response = rt.SendAdminRequest("GET", "/db/_role/hipster", "")
105 RequireStatus(t, response, 200)
106 require.NoError(t, base.JSONUnmarshal(response.Body.Bytes(), &role))
107 assert.Equal(t, "hipster", *role.Name)
108 RequireStatus(t, rt.SendAdminRequest("DELETE", "/db/_role/hipster", ""), 200)
109
110 // GET including deleted
111 response = rt.SendAdminRequest("GET", "/db/_role/?deleted=true", "")
112 RequireStatus(t, response, 200)
113 assert.Equal(t, `["hipster","testdeleted"]`, response.Body.String())
114}
115
116func TestFunkyRoleNames(t *testing.T) {
117 cases := []struct {

Callers

nothing calls this directly

Calls 9

CloseMethod · 0.95
GetSingleDataStoreMethod · 0.95
SendAdminRequestMethod · 0.95
JSONUnmarshalFunction · 0.92
NewRestTesterFunction · 0.85
RequireStatusFunction · 0.85
GetRolePayloadFunction · 0.85
StringMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected