mirror of
https://github.com/strapi/strapi.git
synced 2025-09-25 00:09:18 +00:00
fix tests
Signed-off-by: Pierre Noël <petersg83@gmail.com>
This commit is contained in:
parent
afa67add2b
commit
1bc8ae4d0f
@ -22,12 +22,20 @@ describe('Permission Service', () => {
|
||||
describe('Assign permissions', () => {
|
||||
test('Delete previous permissions', async () => {
|
||||
const createMany = jest.fn(() => Promise.resolve([]));
|
||||
const getSuperAdmin = jest.fn(() => Promise.resolve({ id: 0 }));
|
||||
const sendDidUpdateRolePermissions = jest.fn();
|
||||
const find = jest.fn(() => Promise.resolve([{ id: 3 }]));
|
||||
const deleteFn = jest.fn();
|
||||
const getAll = jest.fn(() => []);
|
||||
|
||||
global.strapi = {
|
||||
admin: { services: { permission: { actionProvider: { getAll } } } },
|
||||
admin: {
|
||||
services: {
|
||||
metrics: { sendDidUpdateRolePermissions },
|
||||
permission: { actionProvider: { getAll } },
|
||||
role: { getSuperAdmin },
|
||||
}
|
||||
},
|
||||
query() {
|
||||
return { delete: deleteFn, createMany, find };
|
||||
},
|
||||
@ -45,6 +53,8 @@ describe('Permission Service', () => {
|
||||
|
||||
const deleteFn = jest.fn(() => Promise.resolve([]));
|
||||
const createMany = jest.fn(() => Promise.resolve([]));
|
||||
const getSuperAdmin = jest.fn(() => Promise.resolve({ id: 0 }));
|
||||
const sendDidUpdateRolePermissions = jest.fn();
|
||||
const find = jest.fn(() => Promise.resolve([]));
|
||||
const getAll = jest.fn(() => permissions.map(perm => ({ actionId: perm.action })));
|
||||
const removeUnkownConditionIds = jest.fn(conds => _.intersection(conds, ['cond']));
|
||||
@ -52,6 +62,8 @@ describe('Permission Service', () => {
|
||||
global.strapi = {
|
||||
admin: {
|
||||
services: {
|
||||
metrics: { sendDidUpdateRolePermissions },
|
||||
role: { getSuperAdmin },
|
||||
permission: {
|
||||
actionProvider: { getAll },
|
||||
conditionProvider: {
|
||||
|
@ -368,7 +368,7 @@ describe('Role', () => {
|
||||
let id = 1;
|
||||
const create = jest.fn(role => ({ ...role, id: id++ }));
|
||||
const getAll = jest.fn(() => actions);
|
||||
const assign = jest.fn();
|
||||
const createMany = jest.fn();
|
||||
const assignARoleToAll = jest.fn();
|
||||
const getPermissionsWithNestedFields = jest.fn(() => [...permissions]); // cloned, otherwise it is modified inside createRolesIfNoneExist()
|
||||
|
||||
@ -376,7 +376,7 @@ describe('Role', () => {
|
||||
query: () => ({ count, create }),
|
||||
admin: {
|
||||
services: {
|
||||
permission: { actionProvider: { getAll }, assign },
|
||||
permission: { actionProvider: { getAll }, createMany },
|
||||
'content-type': { getPermissionsWithNestedFields },
|
||||
user: { assignARoleToAll },
|
||||
},
|
||||
@ -404,8 +404,8 @@ describe('Role', () => {
|
||||
expect(getPermissionsWithNestedFields).toHaveBeenCalledWith(actions, {
|
||||
restrictedSubjects: ['plugins::users-permissions.user'],
|
||||
});
|
||||
expect(assign).toHaveBeenCalledTimes(2);
|
||||
expect(assign).toHaveBeenNthCalledWith(1, 2, [
|
||||
expect(createMany).toHaveBeenCalledTimes(2);
|
||||
expect(createMany).toHaveBeenNthCalledWith(1, 2, [
|
||||
...permissions,
|
||||
...defaultPermissions.map(d => ({
|
||||
...d,
|
||||
@ -413,7 +413,7 @@ describe('Role', () => {
|
||||
})),
|
||||
]);
|
||||
|
||||
expect(assign).toHaveBeenNthCalledWith(2, 3, [
|
||||
expect(createMany).toHaveBeenNthCalledWith(2, 3, [
|
||||
{ ...permissions[0], conditions: ['admin::is-creator'] },
|
||||
...defaultPermissions,
|
||||
]);
|
||||
|
@ -62,12 +62,8 @@ const deleteByIds = ids => {
|
||||
* @param permissions
|
||||
* @returns {Promise<*[]|*>}
|
||||
*/
|
||||
const createMany = async permissions => {
|
||||
try {
|
||||
await validatePermissionsExist(permissions);
|
||||
} catch (err) {
|
||||
throw strapi.errors.badRequest('ValidationError', err);
|
||||
}
|
||||
const createMany = async (roleId, permissions) => {
|
||||
permissions.forEach(p => p.role = roleId);
|
||||
|
||||
return strapi.query('permission', 'admin').createMany(permissions);
|
||||
};
|
||||
@ -131,7 +127,7 @@ const assign = async (roleId, permissions = []) => {
|
||||
await deleteByIds(permissionsToDelete.map(p => p.id));
|
||||
}
|
||||
if (permissionsToAdd.length > 0) {
|
||||
const createdPermissions = await createMany(permissionsToAdd);
|
||||
const createdPermissions = await createMany(roleId, permissionsToAdd);
|
||||
permissionsToReturn.push(...createdPermissions.map(p => ({ ...p, role: p.role.id })));
|
||||
}
|
||||
|
||||
@ -254,7 +250,7 @@ const ensureBoundPermissionsInDatabase = async () => {
|
||||
fields: BOUND_ACTIONS_FOR_FIELDS.includes(action) ? fields : null,
|
||||
})
|
||||
);
|
||||
await createMany(permissions);
|
||||
await createMany(editorRole.id, permissions);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -233,14 +233,8 @@ const createRolesIfNoneExist = async ({ createPermissionsForAdmin = false } = {}
|
||||
authorPermissions.push(...getDefaultPluginPermissions({ isAuthor: true }));
|
||||
|
||||
// assign permissions to roles
|
||||
editorPermissions.forEach(p => {
|
||||
p.role = editorRole.id;
|
||||
});
|
||||
authorPermissions.forEach(p => {
|
||||
p.role = authorRole.id;
|
||||
});
|
||||
await strapi.admin.services.permission.createMany(editorPermissions);
|
||||
await strapi.admin.services.permission.createMany(authorPermissions);
|
||||
await strapi.admin.services.permission.createMany(editorRole.id, editorPermissions);
|
||||
await strapi.admin.services.permission.createMany(authorRole.id, authorPermissions);
|
||||
|
||||
if (createPermissionsForAdmin) {
|
||||
await strapi.admin.services.permission.resetSuperAdminPermissions();
|
||||
|
Loading…
x
Reference in New Issue
Block a user