mirror of
https://gitlab.com/mobicoop/v3/service/matcher.git
synced 2025-12-30 17:52:41 +00:00
basic match query
This commit is contained in:
@@ -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);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user