mirror of
https://github.com/n8n-io/n8n.git
synced 2025-03-05 20:50:17 -08:00
* 👕 Move `consistent-type-imports` to top level * 👕 Apply lintfixes * 👕 Apply more lintfixes * 👕 More lintfixes * 👕 More lintfixes
48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
import { parsePermissionsTable } from '@/permissions';
|
|
import type { IUser } from '@/Interface';
|
|
|
|
describe('parsePermissionsTable()', () => {
|
|
const user: IUser = {
|
|
id: '1',
|
|
firstName: 'John',
|
|
lastName: 'Doe',
|
|
isDefaultUser: false,
|
|
isOwner: true,
|
|
isPending: false,
|
|
isPendingUser: false,
|
|
};
|
|
|
|
it('should return permissions object using generic permissions table', () => {
|
|
const permissions = parsePermissionsTable(user, []);
|
|
|
|
expect(permissions.isInstanceOwner).toBe(true);
|
|
});
|
|
|
|
it('should set permission based on permissions table row test function', () => {
|
|
const permissions = parsePermissionsTable(user, [
|
|
{ name: 'canRead', test: () => true },
|
|
{ name: 'canUpdate', test: () => false },
|
|
]);
|
|
|
|
expect(permissions.canRead).toBe(true);
|
|
expect(permissions.canUpdate).toBe(false);
|
|
});
|
|
|
|
it('should set permission based on previously computed permission', () => {
|
|
const permissions = parsePermissionsTable(user, [
|
|
{ name: 'canRead', test: ['isInstanceOwner'] },
|
|
]);
|
|
|
|
expect(permissions.canRead).toBe(true);
|
|
});
|
|
|
|
it('should set permission based on multiple previously computed permissions', () => {
|
|
const permissions = parsePermissionsTable(user, [
|
|
{ name: 'isResourceOwner', test: ['isInstanceOwner'] },
|
|
{ name: 'canRead', test: ['isInstanceOwner', 'isResourceOwner'] },
|
|
]);
|
|
|
|
expect(permissions.canRead).toBe(true);
|
|
});
|
|
});
|