ad/tests/unit/ad/interface/matcher-ad-created.message-...

47 lines
1.4 KiB
TypeScript

import { MatcherAdCreatedMessageHandler } from '@modules/ad/interface/message-handlers/matcher-ad-created.message-handler';
import { CommandBus } from '@nestjs/cqrs';
import { Test, TestingModule } from '@nestjs/testing';
const matcherAdCreatedMessage =
'{"id":"4eb6a6af-ecfd-41c3-9118-473a507014d4","driverDuration":"3512","driverDistance":"65845","fwdAzimuth":"90","backAzimuth":"270"}';
const mockCommandBus = {
execute: jest.fn(),
};
describe('Matcher Ad Created Message Handler', () => {
let matcherAdCreatedMessageHandler: MatcherAdCreatedMessageHandler;
beforeAll(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [
{
provide: CommandBus,
useValue: mockCommandBus,
},
MatcherAdCreatedMessageHandler,
],
}).compile();
matcherAdCreatedMessageHandler = module.get<MatcherAdCreatedMessageHandler>(
MatcherAdCreatedMessageHandler,
);
});
afterEach(async () => {
jest.clearAllMocks();
});
it('should be defined', () => {
expect(matcherAdCreatedMessageHandler).toBeDefined();
});
it('should validate an ad', async () => {
jest.spyOn(mockCommandBus, 'execute');
await matcherAdCreatedMessageHandler.matcherAdCreated(
matcherAdCreatedMessage,
);
expect(mockCommandBus.execute).toHaveBeenCalledTimes(1);
});
});