mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 10:02:05 +00:00
feat(core): Set up endpoint for all existing roles with license flag (#7834)
https://linear.app/n8n/issue/PAY-1034/create-endpoint-to-list-all-existing-roles
This commit is contained in:
82
packages/cli/test/integration/role.api.test.ts
Normal file
82
packages/cli/test/integration/role.api.test.ts
Normal file
@@ -0,0 +1,82 @@
|
||||
import { License } from '@/License';
|
||||
|
||||
import * as utils from './shared/utils/';
|
||||
import * as testDb from './shared/testDb';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { createAdmin, createMember, createOwner } from './shared/db/users';
|
||||
|
||||
import type { SuperAgentTest } from 'supertest';
|
||||
import type { User } from '@db/entities/User';
|
||||
|
||||
const testServer = utils.setupTestServer({ endpointGroups: ['role'] });
|
||||
|
||||
const license = mockInstance(License, {
|
||||
isAdvancedPermissionsLicensed: jest.fn().mockReturnValue(true),
|
||||
isWithinUsersLimit: jest.fn().mockReturnValue(true),
|
||||
});
|
||||
|
||||
describe('GET /roles', () => {
|
||||
let owner: User;
|
||||
let admin: User;
|
||||
let member: User;
|
||||
|
||||
let ownerAgent: SuperAgentTest;
|
||||
let adminAgent: SuperAgentTest;
|
||||
let memberAgent: SuperAgentTest;
|
||||
|
||||
let toAgent: Record<string, SuperAgentTest> = {};
|
||||
|
||||
beforeAll(async () => {
|
||||
await testDb.truncate(['User']);
|
||||
|
||||
owner = await createOwner();
|
||||
admin = await createAdmin();
|
||||
member = await createMember();
|
||||
|
||||
ownerAgent = testServer.authAgentFor(owner);
|
||||
adminAgent = testServer.authAgentFor(admin);
|
||||
memberAgent = testServer.authAgentFor(member);
|
||||
|
||||
toAgent = {
|
||||
owner: ownerAgent,
|
||||
admin: adminAgent,
|
||||
member: memberAgent,
|
||||
};
|
||||
});
|
||||
|
||||
describe('with advanced permissions licensed', () => {
|
||||
test.each(['owner', 'admin', 'member'])('should return all roles to %s', async (user) => {
|
||||
license.isAdvancedPermissionsLicensed.mockReturnValue(true);
|
||||
|
||||
const response = await toAgent[user].get('/roles').expect(200);
|
||||
|
||||
expect(response.body.data).toEqual([
|
||||
{ scope: 'global', name: 'owner', isAvailable: true },
|
||||
{ scope: 'global', name: 'member', isAvailable: true },
|
||||
{ scope: 'global', name: 'admin', isAvailable: true },
|
||||
{ scope: 'workflow', name: 'owner', isAvailable: true },
|
||||
{ scope: 'credential', name: 'owner', isAvailable: true },
|
||||
{ scope: 'credential', name: 'user', isAvailable: true },
|
||||
{ scope: 'workflow', name: 'editor', isAvailable: true },
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('with advanced permissions not licensed', () => {
|
||||
test.each(['owner', 'admin', 'member'])('should return all roles to %s', async (user) => {
|
||||
license.isAdvancedPermissionsLicensed.mockReturnValue(false);
|
||||
|
||||
const response = await toAgent[user].get('/roles').expect(200);
|
||||
|
||||
expect(response.body.data).toEqual([
|
||||
{ scope: 'global', name: 'owner', isAvailable: true },
|
||||
{ scope: 'global', name: 'member', isAvailable: true },
|
||||
{ scope: 'global', name: 'admin', isAvailable: false },
|
||||
{ scope: 'workflow', name: 'owner', isAvailable: true },
|
||||
{ scope: 'credential', name: 'owner', isAvailable: true },
|
||||
{ scope: 'credential', name: 'user', isAvailable: true },
|
||||
{ scope: 'workflow', name: 'editor', isAvailable: true },
|
||||
]);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user