mirror of
https://gitlab.com/mobicoop/v3/service/user.git
synced 2026-03-27 09:15:50 +00:00
delete user
This commit is contained in:
69
src/modules/users/tests/unit/delete-user.usecase.spec.ts
Normal file
69
src/modules/users/tests/unit/delete-user.usecase.spec.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { UsersRepository } from '../../adapters/secondaries/users.repository';
|
||||
import { DeleteUserCommand } from '../../commands/delete-user.command';
|
||||
import { DeleteUserUseCase } from '../../domain/usecases/delete-user.usecase';
|
||||
|
||||
const usersMock = [
|
||||
{
|
||||
uuid: 'bb281075-1b98-4456-89d6-c643d3044a91',
|
||||
firstName: 'John',
|
||||
lastName: 'Doe',
|
||||
email: 'john.doe@email.com',
|
||||
},
|
||||
{
|
||||
uuid: 'bb281075-1b98-4456-89d6-c643d3044a92',
|
||||
firstName: 'Jane',
|
||||
lastName: 'Doe',
|
||||
email: 'jane.doe@email.com',
|
||||
},
|
||||
{
|
||||
uuid: 'bb281075-1b98-4456-89d6-c643d3044a93',
|
||||
firstName: 'Jimmy',
|
||||
lastName: 'Doe',
|
||||
email: 'jimmy.doe@email.com',
|
||||
},
|
||||
];
|
||||
|
||||
const mockUsersRepository = {
|
||||
delete: jest.fn().mockImplementation((uuid: string) => {
|
||||
usersMock.forEach((user, index) => {
|
||||
if (user.uuid === uuid) {
|
||||
usersMock.splice(index, 1);
|
||||
return Promise.resolve();
|
||||
}
|
||||
});
|
||||
}),
|
||||
};
|
||||
|
||||
describe('DeleteUserUseCase', () => {
|
||||
let deleteUserUseCase: DeleteUserUseCase;
|
||||
|
||||
beforeAll(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [
|
||||
{
|
||||
provide: UsersRepository,
|
||||
useValue: mockUsersRepository,
|
||||
},
|
||||
DeleteUserUseCase,
|
||||
],
|
||||
}).compile();
|
||||
|
||||
deleteUserUseCase = module.get<DeleteUserUseCase>(DeleteUserUseCase);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(deleteUserUseCase).toBeDefined();
|
||||
});
|
||||
|
||||
describe('execute', () => {
|
||||
it('should delete an User', async () => {
|
||||
const savedUuid = usersMock[0].uuid;
|
||||
const deleteUserCommand = new DeleteUserCommand(savedUuid);
|
||||
await deleteUserUseCase.execute(deleteUserCommand);
|
||||
|
||||
const deletedUser = usersMock.find((user) => user.uuid === savedUuid);
|
||||
expect(deletedUser).toBeUndefined();
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user