basic match query
This commit is contained in:
parent
a98e5b3c83
commit
effe51b9a2
|
@ -116,4 +116,12 @@ export class MatchRequestDto {
|
|||
@Min(0)
|
||||
@Max(1)
|
||||
maxDetourDurationRatio?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
page?: number;
|
||||
|
||||
@IsOptional()
|
||||
@IsInt()
|
||||
perPage?: number;
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ export class MatchGrpcController {
|
|||
data: matches,
|
||||
page: 1,
|
||||
perPage: 5,
|
||||
total: 1,
|
||||
total: matches.length,
|
||||
};
|
||||
} catch (e) {
|
||||
throw new RpcException({
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import { RpcExceptionCode } from '@mobicoop/ddd-library';
|
||||
import { Frequency } from '@modules/matcher/core/domain/match.types';
|
||||
import { MatchRequestDto } from '@modules/matcher/interface/grpc-controllers/dtos/match.request.dto';
|
||||
import { WaypointDto } from '@modules/matcher/interface/grpc-controllers/dtos/waypoint.dto';
|
||||
import { MatchGrpcController } from '@modules/matcher/interface/grpc-controllers/match.grpc-controller';
|
||||
import { QueryBus } from '@nestjs/cqrs';
|
||||
import { RpcException } from '@nestjs/microservices';
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
|
||||
const originWaypoint: WaypointDto = {
|
||||
|
@ -38,14 +40,19 @@ const punctualMatchRequestDto: MatchRequestDto = {
|
|||
};
|
||||
|
||||
const mockQueryBus = {
|
||||
execute: jest.fn().mockImplementation(() => [
|
||||
execute: jest
|
||||
.fn()
|
||||
.mockImplementationOnce(() => [
|
||||
{
|
||||
adId: 1,
|
||||
},
|
||||
{
|
||||
adId: 2,
|
||||
},
|
||||
]),
|
||||
])
|
||||
.mockImplementationOnce(() => {
|
||||
throw new Error();
|
||||
}),
|
||||
};
|
||||
|
||||
describe('Match Grpc Controller', () => {
|
||||
|
@ -74,9 +81,23 @@ describe('Match Grpc Controller', () => {
|
|||
});
|
||||
|
||||
it('should return matches', async () => {
|
||||
jest.spyOn(mockQueryBus, 'execute');
|
||||
const matchPaginatedResponseDto = await matchGrpcController.match(
|
||||
punctualMatchRequestDto,
|
||||
);
|
||||
expect(matchPaginatedResponseDto.data).toHaveLength(2);
|
||||
expect(mockQueryBus.execute).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('should throw a generic RpcException', async () => {
|
||||
jest.spyOn(mockQueryBus, 'execute');
|
||||
expect.assertions(3);
|
||||
try {
|
||||
await matchGrpcController.match(punctualMatchRequestDto);
|
||||
} catch (e: any) {
|
||||
expect(e).toBeInstanceOf(RpcException);
|
||||
expect(e.error.code).toBe(RpcExceptionCode.UNKNOWN);
|
||||
}
|
||||
expect(mockQueryBus.execute).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue