Test fixes, as well as issue discovered by test around _id generation and event triggering.
This commit is contained in:
parent
8882801315
commit
7e79c827a7
|
@ -55,11 +55,19 @@ export async function save(ctx: UserCtx) {
|
||||||
const db = context.getAppDB()
|
const db = context.getAppDB()
|
||||||
let { _id, name, inherits, permissionId, version } = ctx.request.body
|
let { _id, name, inherits, permissionId, version } = ctx.request.body
|
||||||
let isCreate = false
|
let isCreate = false
|
||||||
if (!_id || version === roles.RoleVersion.VERSION_2) {
|
|
||||||
|
if (_id && roles.isBuiltin(_id)) {
|
||||||
|
ctx.throw(400, "Cannot update builtin roles.")
|
||||||
|
}
|
||||||
|
|
||||||
|
// if not id found, then its creation
|
||||||
|
if (!_id) {
|
||||||
_id = generateRoleID(name)
|
_id = generateRoleID(name)
|
||||||
isCreate = true
|
isCreate = true
|
||||||
} else if (roles.isBuiltin(_id)) {
|
}
|
||||||
ctx.throw(400, "Cannot update builtin roles.")
|
// version 2 roles need updated to add back role_
|
||||||
|
else if (version === roles.RoleVersion.VERSION_2) {
|
||||||
|
_id = generateRoleID(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
const role = new roles.Role(_id, name, permissionId).addInheritance(inherits)
|
const role = new roles.Role(_id, name, permissionId).addInheritance(inherits)
|
||||||
|
|
|
@ -29,10 +29,11 @@ describe("/roles", () => {
|
||||||
|
|
||||||
describe("create", () => {
|
describe("create", () => {
|
||||||
it("returns a success message when role is successfully created", async () => {
|
it("returns a success message when role is successfully created", async () => {
|
||||||
const res = await createRole()
|
const role = basicRole()
|
||||||
|
const res = await createRole(role)
|
||||||
|
|
||||||
expect(res.res.statusMessage).toEqual(
|
expect(res.res.statusMessage).toEqual(
|
||||||
"Role 'NewRole' created successfully."
|
`Role '${role.name}' created successfully.`
|
||||||
)
|
)
|
||||||
expect(res.body._id).toBeDefined()
|
expect(res.body._id).toBeDefined()
|
||||||
expect(res.body._rev).toBeDefined()
|
expect(res.body._rev).toBeDefined()
|
||||||
|
@ -44,12 +45,13 @@ describe("/roles", () => {
|
||||||
|
|
||||||
describe("update", () => {
|
describe("update", () => {
|
||||||
it("updates a role", async () => {
|
it("updates a role", async () => {
|
||||||
let res = await createRole()
|
const role = basicRole()
|
||||||
|
let res = await createRole(role)
|
||||||
jest.clearAllMocks()
|
jest.clearAllMocks()
|
||||||
res = await createRole(res.body)
|
res = await createRole(res.body)
|
||||||
|
|
||||||
expect(res.res.statusMessage).toEqual(
|
expect(res.res.statusMessage).toEqual(
|
||||||
"Role 'NewRole' created successfully."
|
`Role '${role.name}' created successfully.`
|
||||||
)
|
)
|
||||||
expect(res.body._id).toBeDefined()
|
expect(res.body._id).toBeDefined()
|
||||||
expect(res.body._rev).toBeDefined()
|
expect(res.body._rev).toBeDefined()
|
||||||
|
@ -86,7 +88,7 @@ describe("/roles", () => {
|
||||||
expect(powerUserRole.inherits).toEqual(BUILTIN_ROLE_IDS.BASIC)
|
expect(powerUserRole.inherits).toEqual(BUILTIN_ROLE_IDS.BASIC)
|
||||||
expect(powerUserRole.permissionId).toEqual(BuiltinPermissionID.POWER)
|
expect(powerUserRole.permissionId).toEqual(BuiltinPermissionID.POWER)
|
||||||
|
|
||||||
const customRoleFetched = res.body.find(r => r._id === customRole._id)
|
const customRoleFetched = res.body.find(r => r._id === customRole.name)
|
||||||
expect(customRoleFetched).toBeDefined()
|
expect(customRoleFetched).toBeDefined()
|
||||||
expect(customRoleFetched.inherits).toEqual(BUILTIN_ROLE_IDS.BASIC)
|
expect(customRoleFetched.inherits).toEqual(BUILTIN_ROLE_IDS.BASIC)
|
||||||
expect(customRoleFetched.permissionId).toEqual(
|
expect(customRoleFetched.permissionId).toEqual(
|
||||||
|
|
|
@ -266,6 +266,7 @@ export function basicRole() {
|
||||||
name: `NewRole_${utils.newid()}`,
|
name: `NewRole_${utils.newid()}`,
|
||||||
inherits: roles.BUILTIN_ROLE_IDS.BASIC,
|
inherits: roles.BUILTIN_ROLE_IDS.BASIC,
|
||||||
permissionId: permissions.BuiltinPermissionID.READ_ONLY,
|
permissionId: permissions.BuiltinPermissionID.READ_ONLY,
|
||||||
|
version: 2,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue