From deadc59277f4c984cb79703549142a5bc8c753ca Mon Sep 17 00:00:00 2001 From: Marshal Date: Mon, 27 Jul 2026 14:44:16 +0000 Subject: [PATCH] fix: correct column name in orderBy clause for listRequests method --- .../wagon-transfer-requests.service.spec.ts | 25 +++++++++++++++++++ .../wagons/wagon-transfer-requests.service.ts | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/apps/edr-freight-api/src/modules/wagons/wagon-transfer-requests.service.spec.ts b/apps/edr-freight-api/src/modules/wagons/wagon-transfer-requests.service.spec.ts index ecf512aac..205d86450 100644 --- a/apps/edr-freight-api/src/modules/wagons/wagon-transfer-requests.service.spec.ts +++ b/apps/edr-freight-api/src/modules/wagons/wagon-transfer-requests.service.spec.ts @@ -232,4 +232,29 @@ describe('WagonTransferRequestsService — partial fulfilment', () => { ).rejects.toBeInstanceOf(BadRequestException); }); }); + + describe('listRequests', () => { + // TypeORM paginates a joined query through a DISTINCT subquery and resolves + // every orderBy criterion against entity metadata — a DB column name there + // (`r.created_at`) makes it read `.databaseName` of undefined → 500. + it('sorts by the entity property path, not the DB column', async () => { + const qb = { + leftJoinAndSelect: jest.fn().mockReturnThis(), + andWhere: jest.fn().mockReturnThis(), + orderBy: jest.fn().mockReturnThis(), + skip: jest.fn().mockReturnThis(), + take: jest.fn().mockReturnThis(), + getManyAndCount: jest.fn().mockResolvedValue([[], 0]), + }; + requestRepo.createQueryBuilder.mockReturnValue(qb); + + await service.listRequests({ + status: 'PENDING,PARTIALLY_FULFILLED', + page: 1, + pageSize: 10, + }); + + expect(qb.orderBy).toHaveBeenCalledWith('r.createdAt', 'DESC'); + }); + }); }); diff --git a/apps/edr-freight-api/src/modules/wagons/wagon-transfer-requests.service.ts b/apps/edr-freight-api/src/modules/wagons/wagon-transfer-requests.service.ts index 79a74f4ce..2d2673164 100644 --- a/apps/edr-freight-api/src/modules/wagons/wagon-transfer-requests.service.ts +++ b/apps/edr-freight-api/src/modules/wagons/wagon-transfer-requests.service.ts @@ -159,7 +159,7 @@ export class WagonTransferRequestsService { ? 'r.quantity' : query.sortBy === 'status' ? 'r.status' - : 'r.created_at'; + : 'r.createdAt'; qb.orderBy(sortColumn, query.sortOrder ?? 'DESC'); return paginateQuery(qb, { page: query.page, pageSize: query.pageSize });