mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-22 12:19:09 +00:00
refactor(core): Continue moving typeorm operators to repositories (no-changelog) (#8186)
Follow-up to: #8163
This commit is contained in:
@@ -8,30 +8,31 @@ import type {
|
||||
WorkflowClosedMessage,
|
||||
WorkflowOpenedMessage,
|
||||
} from '@/collaboration/collaboration.message';
|
||||
import type { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
describe('CollaborationService', () => {
|
||||
let collaborationService: CollaborationService;
|
||||
let mockLogger: Logger;
|
||||
let mockUserService: jest.Mocked<UserService>;
|
||||
let mockUserRepository: jest.Mocked<UserRepository>;
|
||||
let state: CollaborationState;
|
||||
let push: Push;
|
||||
|
||||
beforeEach(() => {
|
||||
mockLogger = {
|
||||
warn: jest.fn(),
|
||||
error: jest.fn(),
|
||||
} as unknown as jest.Mocked<Logger>;
|
||||
mockUserService = {
|
||||
getByIds: jest.fn(),
|
||||
getManager: jest.fn(),
|
||||
} as unknown as jest.Mocked<UserService>;
|
||||
|
||||
push = {
|
||||
on: jest.fn(),
|
||||
sendToUsers: jest.fn(),
|
||||
} as unknown as Push;
|
||||
mockLogger = mock<Logger>();
|
||||
mockUserService = mock<UserService>();
|
||||
mockUserRepository = mock<UserRepository>();
|
||||
push = mock<Push>();
|
||||
state = new CollaborationState();
|
||||
collaborationService = new CollaborationService(mockLogger, push, state, mockUserService);
|
||||
|
||||
collaborationService = new CollaborationService(
|
||||
mockLogger,
|
||||
push,
|
||||
state,
|
||||
mockUserService,
|
||||
mockUserRepository,
|
||||
);
|
||||
});
|
||||
|
||||
describe('workflow opened message', () => {
|
||||
@@ -61,7 +62,7 @@ describe('CollaborationService', () => {
|
||||
|
||||
describe('user is not yet active', () => {
|
||||
it('updates state correctly', async () => {
|
||||
mockUserService.getByIds.mockResolvedValueOnce([{ id: userId } as User]);
|
||||
mockUserRepository.getByIds.mockResolvedValueOnce([{ id: userId } as User]);
|
||||
await collaborationService.handleUserMessage(userId, message);
|
||||
|
||||
expect(state.getActiveWorkflowUsers(workflowId)).toEqual([
|
||||
@@ -73,7 +74,7 @@ describe('CollaborationService', () => {
|
||||
});
|
||||
|
||||
it('sends active workflow users changed message', async () => {
|
||||
mockUserService.getByIds.mockResolvedValueOnce([{ id: userId } as User]);
|
||||
mockUserRepository.getByIds.mockResolvedValueOnce([{ id: userId } as User]);
|
||||
await collaborationService.handleUserMessage(userId, message);
|
||||
|
||||
expectActiveUsersChangedMessage([userId]);
|
||||
@@ -86,7 +87,7 @@ describe('CollaborationService', () => {
|
||||
});
|
||||
|
||||
it('updates state correctly', async () => {
|
||||
mockUserService.getByIds.mockResolvedValueOnce([{ id: userId } as User]);
|
||||
mockUserRepository.getByIds.mockResolvedValueOnce([{ id: userId } as User]);
|
||||
await collaborationService.handleUserMessage(userId, message);
|
||||
|
||||
expect(state.getActiveWorkflowUsers(workflowId)).toEqual([
|
||||
@@ -98,7 +99,7 @@ describe('CollaborationService', () => {
|
||||
});
|
||||
|
||||
it('sends active workflow users changed message', async () => {
|
||||
mockUserService.getByIds.mockResolvedValueOnce([{ id: userId } as User]);
|
||||
mockUserRepository.getByIds.mockResolvedValueOnce([{ id: userId } as User]);
|
||||
await collaborationService.handleUserMessage(userId, message);
|
||||
|
||||
expectActiveUsersChangedMessage([userId]);
|
||||
|
||||
@@ -14,11 +14,13 @@ import { License } from '@/License';
|
||||
import { badPasswords } from '../shared/testData';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
|
||||
describe('MeController', () => {
|
||||
const externalHooks = mockInstance(ExternalHooks);
|
||||
const internalHooks = mockInstance(InternalHooks);
|
||||
const userService = mockInstance(UserService);
|
||||
const userRepository = mockInstance(UserRepository);
|
||||
mockInstance(License).isWithinUsersLimit.mockReturnValue(true);
|
||||
const controller = Container.get(MeController);
|
||||
|
||||
@@ -47,7 +49,7 @@ describe('MeController', () => {
|
||||
const reqBody = { email: 'valid@email.com', firstName: 'John', lastName: 'Potato' };
|
||||
const req = mock<MeRequest.UserUpdate>({ user, body: reqBody });
|
||||
const res = mock<Response>();
|
||||
userService.findOneOrFail.mockResolvedValue(user);
|
||||
userRepository.findOneOrFail.mockResolvedValue(user);
|
||||
jest.spyOn(jwt, 'sign').mockImplementation(() => 'signed-token');
|
||||
userService.toPublic.mockResolvedValue({} as unknown as PublicUser);
|
||||
|
||||
@@ -82,7 +84,7 @@ describe('MeController', () => {
|
||||
const reqBody = { email: 'valid@email.com', firstName: 'John', lastName: 'Potato' };
|
||||
const req = mock<MeRequest.UserUpdate>({ user, body: reqBody });
|
||||
const res = mock<Response>();
|
||||
userService.findOneOrFail.mockResolvedValue(user);
|
||||
userRepository.findOneOrFail.mockResolvedValue(user);
|
||||
jest.spyOn(jwt, 'sign').mockImplementation(() => 'signed-token');
|
||||
|
||||
// Add invalid data to the request payload
|
||||
@@ -166,7 +168,7 @@ describe('MeController', () => {
|
||||
body: { currentPassword: 'old_password', newPassword: 'NewPassword123' },
|
||||
});
|
||||
const res = mock<Response>();
|
||||
userService.save.calledWith(req.user).mockResolvedValue(req.user);
|
||||
userRepository.save.calledWith(req.user).mockResolvedValue(req.user);
|
||||
jest.spyOn(jwt, 'sign').mockImplementation(() => 'new-signed-token');
|
||||
|
||||
await controller.updatePassword(req, res);
|
||||
|
||||
@@ -16,11 +16,13 @@ import { BadRequestError } from '@/errors/response-errors/bad-request.error';
|
||||
import { PasswordUtility } from '@/services/password.utility';
|
||||
import Container from 'typedi';
|
||||
import type { InternalHooks } from '@/InternalHooks';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
|
||||
describe('OwnerController', () => {
|
||||
const configGetSpy = jest.spyOn(config, 'getEnv');
|
||||
const internalHooks = mock<InternalHooks>();
|
||||
const userService = mockInstance(UserService);
|
||||
const userRepository = mockInstance(UserRepository);
|
||||
const settingsRepository = mock<SettingsRepository>();
|
||||
mockInstance(License).isWithinUsersLimit.mockReturnValue(true);
|
||||
const controller = new OwnerController(
|
||||
@@ -30,6 +32,7 @@ describe('OwnerController', () => {
|
||||
userService,
|
||||
Container.get(PasswordUtility),
|
||||
mock(),
|
||||
userRepository,
|
||||
);
|
||||
|
||||
describe('setupOwner', () => {
|
||||
@@ -87,12 +90,12 @@ describe('OwnerController', () => {
|
||||
});
|
||||
const res = mock<Response>();
|
||||
configGetSpy.mockReturnValue(false);
|
||||
userService.save.calledWith(anyObject()).mockResolvedValue(user);
|
||||
userRepository.save.calledWith(anyObject()).mockResolvedValue(user);
|
||||
jest.spyOn(jwt, 'sign').mockImplementation(() => 'signed-token');
|
||||
|
||||
await controller.setupOwner(req, res);
|
||||
|
||||
expect(userService.save).toHaveBeenCalledWith(user);
|
||||
expect(userRepository.save).toHaveBeenCalledWith(user);
|
||||
|
||||
const cookieOptions = captor<CookieOptions>();
|
||||
expect(res.cookie).toHaveBeenCalledWith(AUTH_COOKIE_NAME, 'signed-token', cookieOptions);
|
||||
|
||||
Reference in New Issue
Block a user