|
|
|
@ -1,16 +1,20 @@ |
|
|
|
const { |
|
|
|
const { |
|
|
|
createApplication, |
|
|
|
createTable, |
|
|
|
createView, |
|
|
|
supertest, |
|
|
|
defaultHeaders |
|
|
|
defaultHeaders, |
|
|
|
} = require("./couchTestUtils") |
|
|
|
const { BUILTIN_ROLE_IDS } = require("../../../utilities/security/roles") |
|
|
|
const { |
|
|
|
BUILTIN_ROLE_IDS, |
|
|
|
} = require("../../../utilities/security/roles") |
|
|
|
const { BUILTIN_PERMISSION_IDS } = require("../../../utilities/security/permissions") |
|
|
|
BUILTIN_PERMISSION_IDS, |
|
|
|
} = require("../../../utilities/security/permissions") |
|
|
|
|
|
|
|
const roleBody = { name: "NewRole", inherits: BUILTIN_ROLE_IDS.BASIC, permissionId: BUILTIN_PERMISSION_IDS.READ_ONLY } |
|
|
|
const roleBody = { |
|
|
|
name: "NewRole", |
|
|
|
inherits: BUILTIN_ROLE_IDS.BASIC, |
|
|
|
permissionId: BUILTIN_PERMISSION_IDS.READ_ONLY, |
|
|
|
} |
|
|
|
|
|
|
|
describe("/roles", () => { |
|
|
|
let server |
|
|
|
@ -20,8 +24,8 @@ describe("/roles", () => { |
|
|
|
let view |
|
|
|
|
|
|
|
beforeAll(async () => { |
|
|
|
({ request, server } = await supertest()) |
|
|
|
}); |
|
|
|
;({ request, server } = await supertest()) |
|
|
|
}) |
|
|
|
|
|
|
|
afterAll(() => { |
|
|
|
server.close() |
|
|
|
@ -35,30 +39,29 @@ describe("/roles", () => { |
|
|
|
}) |
|
|
|
|
|
|
|
describe("create", () => { |
|
|
|
|
|
|
|
it("returns a success message when role is successfully created", async () => { |
|
|
|
const res = await request |
|
|
|
.post(`/api/roles`) |
|
|
|
.send(roleBody) |
|
|
|
.set(defaultHeaders(appId)) |
|
|
|
.expect('Content-Type', /json/) |
|
|
|
.expect("Content-Type", /json/) |
|
|
|
.expect(200) |
|
|
|
|
|
|
|
expect(res.res.statusMessage).toEqual("Role 'NewRole' created successfully.") |
|
|
|
expect(res.res.statusMessage).toEqual( |
|
|
|
"Role 'NewRole' created successfully." |
|
|
|
) |
|
|
|
expect(res.body._id).toBeDefined() |
|
|
|
expect(res.body._rev).toBeDefined() |
|
|
|
}) |
|
|
|
|
|
|
|
}); |
|
|
|
}) |
|
|
|
|
|
|
|
describe("fetch", () => { |
|
|
|
|
|
|
|
it("should list custom roles, plus 2 default roles", async () => { |
|
|
|
const createRes = await request |
|
|
|
.post(`/api/roles`) |
|
|
|
.send(roleBody) |
|
|
|
.set(defaultHeaders(appId)) |
|
|
|
.expect('Content-Type', /json/) |
|
|
|
.expect("Content-Type", /json/) |
|
|
|
.expect(200) |
|
|
|
|
|
|
|
const customRole = createRes.body |
|
|
|
@ -66,10 +69,10 @@ describe("/roles", () => { |
|
|
|
const res = await request |
|
|
|
.get(`/api/roles`) |
|
|
|
.set(defaultHeaders(appId)) |
|
|
|
.expect('Content-Type', /json/) |
|
|
|
.expect("Content-Type", /json/) |
|
|
|
.expect(200) |
|
|
|
|
|
|
|
expect(res.body.length).toBe(3) |
|
|
|
expect(res.body.length).toBe(5) |
|
|
|
|
|
|
|
const adminRole = res.body.find(r => r._id === BUILTIN_ROLE_IDS.ADMIN) |
|
|
|
expect(adminRole).toBeDefined() |
|
|
|
@ -84,10 +87,11 @@ describe("/roles", () => { |
|
|
|
const customRoleFetched = res.body.find(r => r._id === customRole._id) |
|
|
|
expect(customRoleFetched).toBeDefined() |
|
|
|
expect(customRoleFetched.inherits).toEqual(BUILTIN_ROLE_IDS.BASIC) |
|
|
|
expect(customRoleFetched.permissionId).toEqual(BUILTIN_PERMISSION_IDS.READ_ONLY) |
|
|
|
expect(customRoleFetched.permissionId).toEqual( |
|
|
|
BUILTIN_PERMISSION_IDS.READ_ONLY |
|
|
|
) |
|
|
|
}) |
|
|
|
|
|
|
|
}); |
|
|
|
}) |
|
|
|
|
|
|
|
describe("destroy", () => { |
|
|
|
it("should delete custom roles", async () => { |
|
|
|
@ -95,7 +99,7 @@ describe("/roles", () => { |
|
|
|
.post(`/api/roles`) |
|
|
|
.send({ name: "user", permissionId: BUILTIN_PERMISSION_IDS.READ_ONLY }) |
|
|
|
.set(defaultHeaders(appId)) |
|
|
|
.expect('Content-Type', /json/) |
|
|
|
.expect("Content-Type", /json/) |
|
|
|
.expect(200) |
|
|
|
|
|
|
|
const customRole = createRes.body |
|
|
|
@ -111,4 +115,4 @@ describe("/roles", () => { |
|
|
|
.expect(404) |
|
|
|
}) |
|
|
|
}) |
|
|
|
}); |
|
|
|
}) |
|
|
|
|