diff --git a/src/users/services/jobs.service.ts b/src/users/services/jobs.service.ts index 9d6c3534f42183797e52452cc797575d0a6a94a6..d23d4c7bf6446a3e2171eb0746552dd4e0744871 100644 --- a/src/users/services/jobs.service.ts +++ b/src/users/services/jobs.service.ts @@ -12,6 +12,11 @@ import { UsersService } from './users.service'; @Injectable() export class JobsService { + // CNFS job ids ('Conseiller numérique' or 'Conseillère numérique') + public readonly CNFSJobsId = [ + new Types.ObjectId('63beead900d7a73701776fd9'), + new Types.ObjectId('646f2cb009f08f048d40f689'), + ]; private readonly logger = new Logger(JobsService.name); constructor( @@ -152,11 +157,8 @@ export class JobsService { return this.jobModel.find({ jobsGroup: jobsGroupId }).exec(); } - public isConseillerNumerique(jobId: string) { + public isConseillerNumerique(jobId: Types.ObjectId) { // If job is 'Conseiller numérique' or 'Conseillère numérique' - if (jobId === '63beead900d7a73701776fd9' || jobId === '646f2cb009f08f048d40f689') { - return true; - } - return false; + return this.CNFSJobsId.some((cnfsId) => cnfsId.equals(jobId)); } } diff --git a/src/users/services/users.service.spec.ts b/src/users/services/users.service.spec.ts index 8392130f003e194a72c9aa62f52a0a697d948556..ad83f66a6b2c0c271a7c7fdf2ce6524e9448eb1a 100644 --- a/src/users/services/users.service.spec.ts +++ b/src/users/services/users.service.spec.ts @@ -23,7 +23,6 @@ import { IUser } from '../interfaces/user.interface'; import { EmployerDocument } from '../schemas/employer.schema'; import { JobDocument } from '../schemas/job.schema'; import { User } from '../schemas/user.schema'; -import { cnfsJobMock } from './../../../test/mock/data/jobs.mock.data'; import { JobsService } from './jobs.service'; import { UserRegistrySearchService } from './userRegistry-search.service'; import { UsersService } from './users.service'; @@ -554,18 +553,10 @@ describe('UsersService', () => { }); describe('findAllCNFS', () => { - it('should call userModel.find if CNFS job found', async () => { - mockJobsService.findByName.mockResolvedValueOnce(cnfsJobMock); - const spyer = jest.spyOn(mockUserModel, 'find'); - await usersService.findAllCNFS(); - expect(spyer).toBeCalledTimes(1); - }); - - it('should not call userModel.find if CNFS job not found', async () => { - mockJobsService.findByName.mockResolvedValueOnce(null); - const spyer = jest.spyOn(mockUserModel, 'find'); - await usersService.findAllCNFS(); - expect(spyer).toBeCalledTimes(0); + it('should find CNFS user', async () => { + mockUserModel.exec.mockResolvedValueOnce([mockUser]); + const res = await usersService.findAllCNFS(); + expect(res.length).toBe(1); }); }); }); diff --git a/src/users/services/users.service.ts b/src/users/services/users.service.ts index ded27b31d8d510d8db3a31d0bd391fd71253d1cb..903addd3040628c76273a8fb450da1a0769f7974 100644 --- a/src/users/services/users.service.ts +++ b/src/users/services/users.service.ts @@ -159,10 +159,11 @@ export class UsersService { } public async findAllCNFS(): Promise<IUser[]> { - const cnfsJob = await this.jobsService.findByName('CNFS'); - if (cnfsJob) { - return await this.userModel.find({ job: cnfsJob._id }).populate('job').select('-password').exec(); - } + return await this.userModel + .find({ job: { $in: this.jobsService.CNFSJobsId } }) + .populate('job') + .select('-password') + .exec(); } public async findById(id: string, passwordQuery?: boolean): Promise<IUser | undefined> { diff --git a/test/mock/data/jobs.mock.data.ts b/test/mock/data/jobs.mock.data.ts deleted file mode 100644 index a590ad693abd50bd9d72f8387e5648704f041aa7..0000000000000000000000000000000000000000 --- a/test/mock/data/jobs.mock.data.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { IJob } from './../../../src/users/interfaces/job.interface'; -import { Types } from 'mongoose'; - -export const cnfsJobMock = { - jobsGroup: new Types.ObjectId('111111111111'), - _id: new Types.ObjectId('111111111111'), - name: 'CNFS', - hasPersonalOffer: true, - validated: true, - __v: 0, -} as IJob;