forked from tsai/budibase
15 changed files with 250 additions and 39 deletions
@ -0,0 +1,95 @@ |
|||||
|
const { config, request, structures } = require("../../../tests") |
||||
|
const { events } = require("@budibase/backend-core") |
||||
|
describe("/api/global/groups", () => { |
||||
|
|
||||
|
beforeAll(async () => { |
||||
|
await config.beforeAll() |
||||
|
}) |
||||
|
|
||||
|
afterAll(async () => { |
||||
|
await config.afterAll() |
||||
|
}) |
||||
|
|
||||
|
const createGroup = async (group) => { |
||||
|
const existing = await config.getGroup(group.name) |
||||
|
if (existing) { |
||||
|
await deleteGroup(existing._id) |
||||
|
} |
||||
|
return config.saveGroup(group) |
||||
|
} |
||||
|
|
||||
|
const updateGroup = async (group) => { |
||||
|
const existing = await config.getGroup(group._id) |
||||
|
group._id = existing._id |
||||
|
return config.saveGroup(group) |
||||
|
} |
||||
|
|
||||
|
|
||||
|
const deleteGroup = async (group) => { |
||||
|
const oldGroup = await config.getGroup(group._id) |
||||
|
if (oldGroup) { |
||||
|
await request |
||||
|
.delete(`/api/global/users/${oldGroup._id}`) |
||||
|
.set(config.defaultHeaders()) |
||||
|
.expect("Content-Type", /json/) |
||||
|
.expect(200) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
describe("create", () => { |
||||
|
it("should be able to create a basic group", async () => { |
||||
|
jest.clearAllMocks() |
||||
|
const group = structures.groups.UserGroup() |
||||
|
await createGroup(group) |
||||
|
|
||||
|
expect(events.group.created).toBeCalledTimes(1) |
||||
|
expect(events.group.updated).not.toBeCalled() |
||||
|
expect(events.group.permissionsEdited).not.toBeCalled() |
||||
|
}) |
||||
|
}) |
||||
|
describe("update", () => { |
||||
|
it("should be able to update a basic group", async () => { |
||||
|
jest.clearAllMocks() |
||||
|
const group = structures.groups.UserGroup() |
||||
|
let oldGroup = await createGroup(group) |
||||
|
|
||||
|
let groupToSend = { |
||||
|
...group, |
||||
|
...oldGroup, |
||||
|
name: "New Name" |
||||
|
} |
||||
|
await updateGroup(groupToSend) |
||||
|
|
||||
|
expect(events.group.updated).toBeCalledTimes(1) |
||||
|
expect(events.group.permissionsEdited).not.toBeCalled() |
||||
|
}) |
||||
|
it("should be able to update permissions on a group", async () => { |
||||
|
jest.clearAllMocks() |
||||
|
const group = structures.groups.UserGroup() |
||||
|
let oldGroup = await createGroup(group) |
||||
|
|
||||
|
let groupToSend = { |
||||
|
...group, |
||||
|
...oldGroup, |
||||
|
roles: { app_1234345345: "BASIC" } |
||||
|
} |
||||
|
await updateGroup(groupToSend) |
||||
|
|
||||
|
expect(events.group.updated).toBeCalledTimes(1) |
||||
|
expect(events.group.permissionsEdited).toBeCalledTimes(1) |
||||
|
}) |
||||
|
}) |
||||
|
|
||||
|
describe("destroy", () => { |
||||
|
it("should be able to destroy a basic group", async () => { |
||||
|
const group = structures.groups.UserGroup() |
||||
|
let oldGroup = await createGroup(group) |
||||
|
jest.clearAllMocks() |
||||
|
await deleteGroup(oldGroup) |
||||
|
|
||||
|
expect(events.user.deleted).toBeCalledTimes(1) |
||||
|
}) |
||||
|
}) |
||||
|
}) |
||||
@ -0,0 +1,11 @@ |
|||||
|
export const UserGroup = () => { |
||||
|
let group = { |
||||
|
apps: [], |
||||
|
color: "var(--spectrum-global-color-blue-600)", |
||||
|
icon: "UserGroup", |
||||
|
name: "New group", |
||||
|
roles: {}, |
||||
|
users: [], |
||||
|
} |
||||
|
return group |
||||
|
} |
||||
Loading…
Reference in new issue