File size: 1,442 Bytes
aec3094 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | import type { User } from '@n8n/db';
import type { UserRepository } from '@n8n/db';
import { mock } from 'jest-mock-extended';
import type { EventService } from '@/events/event.service';
import type { AuthenticatedRequest } from '@/requests';
import type { ProjectService } from '@/services/project.service.ee';
import { UsersController } from '../users.controller';
describe('UsersController', () => {
const eventService = mock<EventService>();
const userRepository = mock<UserRepository>();
const projectService = mock<ProjectService>();
const controller = new UsersController(
mock(),
mock(),
mock(),
mock(),
userRepository,
mock(),
mock(),
mock(),
mock(),
mock(),
projectService,
eventService,
mock(),
);
beforeEach(() => {
jest.restoreAllMocks();
});
describe('changeGlobalRole', () => {
it('should emit event user-changed-role', async () => {
const request = mock<AuthenticatedRequest>({
user: { id: '123' },
});
userRepository.findOneBy.mockResolvedValue(mock<User>({ id: '456' }));
projectService.getUserOwnedOrAdminProjects.mockResolvedValue([]);
await controller.changeGlobalRole(
request,
mock(),
mock({ newRoleName: 'global:member' }),
'456',
);
expect(eventService.emit).toHaveBeenCalledWith('user-changed-role', {
userId: '123',
targetUserId: '456',
targetUserNewRole: 'global:member',
publicApi: false,
});
});
});
});
|