From bb4f969764b231a36695ed6af7d08a6db6a4c52d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marl=C3=A8ne=20SIMONDANT?= <msimondant@grandlyon.com> Date: Thu, 2 Feb 2023 15:25:03 +0000 Subject: [PATCH] fix(registry): sort jobs by alphabetical order --- src/users/services/jobs.service.spec.ts | 15 ++++++++++----- src/users/services/jobs.service.ts | 4 ++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/users/services/jobs.service.spec.ts b/src/users/services/jobs.service.spec.ts index f6e69f769..0022c1148 100644 --- a/src/users/services/jobs.service.spec.ts +++ b/src/users/services/jobs.service.spec.ts @@ -19,7 +19,10 @@ describe('JobsService', () => { const mockJobModel = { create: jest.fn(), - find: jest.fn(), + find: jest.fn().mockReturnThis(), + collation: jest.fn().mockReturnThis(), + sort: jest.fn().mockReturnThis(), + exec: jest.fn().mockReturnThis(), findOne: jest.fn(), findById: jest.fn(), deleteOne: jest.fn(), @@ -66,26 +69,28 @@ describe('JobsService', () => { describe('findAll', () => { it('should findAll validated jobs', async () => { - mockJobModel.find.mockResolvedValue([ + const result = [ { _id: new Types.ObjectId('6231aefe76598527c8d0b5bc'), name: 'CNFS', validated: true, hasPersonalOffer: true, }, - ]); + ]; + mockJobModel.exec.mockResolvedValueOnce(result); const reply = await service.findAll(); expect(reply.length).toBe(1); }); it('should findAll all jobs', async () => { - mockJobModel.find.mockResolvedValue([ + const result = [ { _id: new Types.ObjectId('6231aefe76598527c8d0b5bc'), name: 'CNFSssss', validated: false, hasPersonalOffer: true, }, - ]); + ]; + mockJobModel.exec.mockResolvedValueOnce(result); const reply = await service.findAll(false); expect(reply.length).toBe(1); }); diff --git a/src/users/services/jobs.service.ts b/src/users/services/jobs.service.ts index 2ff2ff5a3..03ce9835f 100644 --- a/src/users/services/jobs.service.ts +++ b/src/users/services/jobs.service.ts @@ -23,9 +23,9 @@ export class JobsService { public async findAll(filterValidatedJobs = true): Promise<IJob[]> { this.logger.debug(`findAll with filterValidetedJobs: ${filterValidatedJobs}`); if (!filterValidatedJobs) { - return this.jobModel.find(); + return this.jobModel.find().collation({ locale: 'fr' }).sort({ name: 1 }).exec(); } else { - return this.jobModel.find({ validated: true }); + return this.jobModel.find({ validated: true }).collation({ locale: 'fr' }).sort({ name: 1 }).exec(); } } -- GitLab