mirror of
https://gitlab.com/mobicoop/v3/service/ad.git
synced 2026-01-09 21:42:41 +00:00
Listen to user.deleted events to delete the corresponding user ads
This commit is contained in:
53
tests/unit/ad/core/delete-user-ads.service.spec.ts
Normal file
53
tests/unit/ad/core/delete-user-ads.service.spec.ts
Normal file
@@ -0,0 +1,53 @@
|
||||
import { DeleteUserAdsCommand } from '@modules/ad/core/application/commands/delete-user-ads/delete-user-ads.command';
|
||||
import { DeleteUserAdsService } from '@modules/ad/core/application/commands/delete-user-ads/delete-user-ads.service';
|
||||
import { AdEntity } from '@modules/ad/core/domain/ad.entity';
|
||||
import { CommandBus, QueryBus } from '@nestjs/cqrs';
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { punctualPassengerCreateAdProps } from './ad.fixtures';
|
||||
|
||||
const userAds = [
|
||||
AdEntity.create(punctualPassengerCreateAdProps()),
|
||||
AdEntity.create(punctualPassengerCreateAdProps()),
|
||||
];
|
||||
|
||||
const mockQueryBus = {
|
||||
execute: jest.fn().mockImplementation(() => userAds),
|
||||
};
|
||||
|
||||
const mockCommandBus = {
|
||||
execute: jest.fn(),
|
||||
};
|
||||
|
||||
describe('delete-user-ads.service', () => {
|
||||
let deleteUserAdsService: DeleteUserAdsService;
|
||||
|
||||
beforeAll(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [
|
||||
{
|
||||
provide: QueryBus,
|
||||
useValue: mockQueryBus,
|
||||
},
|
||||
{
|
||||
provide: CommandBus,
|
||||
useValue: mockCommandBus,
|
||||
},
|
||||
DeleteUserAdsService,
|
||||
],
|
||||
}).compile();
|
||||
|
||||
deleteUserAdsService =
|
||||
module.get<DeleteUserAdsService>(DeleteUserAdsService);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(deleteUserAdsService).toBeDefined();
|
||||
});
|
||||
|
||||
it('should call the delete command for each ad returned by the query', async () => {
|
||||
await deleteUserAdsService.execute(
|
||||
new DeleteUserAdsCommand({ id: userAds[0].getProps().userId }),
|
||||
);
|
||||
expect(mockCommandBus.execute).toHaveBeenCalledTimes(userAds.length);
|
||||
});
|
||||
});
|
||||
43
tests/unit/ad/interface/user-deleted.message-handler.spec.ts
Normal file
43
tests/unit/ad/interface/user-deleted.message-handler.spec.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { UserDeletedMessageHandler } from '@modules/ad/interface/message-handlers/user-deleted.message-handler';
|
||||
import { CommandBus } from '@nestjs/cqrs';
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
|
||||
const mockCommandBus = {
|
||||
execute: jest.fn(),
|
||||
};
|
||||
|
||||
describe('Matcher Ad Created Message Handler', () => {
|
||||
let userDeletedMessageHandler: UserDeletedMessageHandler;
|
||||
|
||||
beforeAll(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [
|
||||
{
|
||||
provide: CommandBus,
|
||||
useValue: mockCommandBus,
|
||||
},
|
||||
UserDeletedMessageHandler,
|
||||
],
|
||||
}).compile();
|
||||
|
||||
userDeletedMessageHandler = module.get<UserDeletedMessageHandler>(
|
||||
UserDeletedMessageHandler,
|
||||
);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(userDeletedMessageHandler).toBeDefined();
|
||||
});
|
||||
|
||||
it('should call the command bus', async () => {
|
||||
const userId = '4eb6a6af-ecfd-41c3-9118-473a507014d4';
|
||||
const userDeletedMessage = `{"id":"${userId}"}`;
|
||||
await userDeletedMessageHandler.userDeleted(userDeletedMessage);
|
||||
expect(mockCommandBus.execute).toHaveBeenCalledTimes(1);
|
||||
expect(mockCommandBus.execute.mock.lastCall[0].id).toBe(userId);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user