import { Role } from '@modules/geography/core/domain/route.types'; import { GetBasicRouteController } from '@modules/geography/interface/controllers/get-basic-route.controller'; import { RouteMapper } from '@modules/geography/route.mapper'; import { QueryBus } from '@nestjs/cqrs'; import { Test, TestingModule } from '@nestjs/testing'; const mockQueryBus = { execute: jest.fn(), }; const mockRouteMapper = { toPersistence: jest.fn(), toDomain: jest.fn(), toResponse: jest.fn(), }; describe('Get Basic Route Controller', () => { let getBasicRouteController: GetBasicRouteController; beforeAll(async () => { const module: TestingModule = await Test.createTestingModule({ providers: [ { provide: QueryBus, useValue: mockQueryBus, }, { provide: RouteMapper, useValue: mockRouteMapper, }, GetBasicRouteController, ], }).compile(); getBasicRouteController = module.get( GetBasicRouteController, ); }); afterEach(async () => { jest.clearAllMocks(); }); it('should be defined', () => { expect(getBasicRouteController).toBeDefined(); }); it('should get a route', async () => { jest.spyOn(mockQueryBus, 'execute'); await getBasicRouteController.get({ roles: [Role.DRIVER], waypoints: [ { position: 0, lon: 48.689445, lat: 6.17651, }, { position: 1, lon: 48.8566, lat: 2.3522, }, ], }); expect(mockQueryBus.execute).toHaveBeenCalledTimes(1); }); });