From ea6684b7fa0f7e5504b14ed9c3d58bff43476eae Mon Sep 17 00:00:00 2001 From: Mathis HERRIOT <197931332+0x485254@users.noreply.github.com> Date: Sat, 17 May 2025 00:12:01 +0200 Subject: [PATCH] refactor(persons): simplify `Person` model by consolidating fields and updating related tests --- .../controllers/persons.controller.spec.ts | 28 ++++++------------ .../persons/services/persons.service.spec.ts | 29 ++++++------------- .../controllers/projects.controller.spec.ts | 6 +++- 3 files changed, 23 insertions(+), 40 deletions(-) diff --git a/backend/src/modules/persons/controllers/persons.controller.spec.ts b/backend/src/modules/persons/controllers/persons.controller.spec.ts index fb2f746..0a2757f 100644 --- a/backend/src/modules/persons/controllers/persons.controller.spec.ts +++ b/backend/src/modules/persons/controllers/persons.controller.spec.ts @@ -1,7 +1,7 @@ import { Test, TestingModule } from '@nestjs/testing'; import { PersonsController } from './persons.controller'; import { PersonsService } from '../services/persons.service'; -import { CreatePersonDto, Gender, OralEaseLevel } from '../dto/create-person.dto'; +import { CreatePersonDto } from '../dto/create-person.dto'; import { UpdatePersonDto } from '../dto/update-person.dto'; import { JwtAuthGuard } from '../../auth/guards/jwt-auth.guard'; @@ -12,16 +12,10 @@ describe('PersonsController', () => { // Mock data const mockPerson = { id: 'person1', - firstName: 'John', - lastName: 'Doe', - gender: Gender.MALE, - technicalLevel: 3, - hasTechnicalTraining: true, - frenchSpeakingLevel: 4, - oralEaseLevel: OralEaseLevel.COMFORTABLE, - age: 30, + name: 'John Doe', projectId: 'project1', - attributes: {}, + skills: ['JavaScript', 'TypeScript'], + metadata: {}, createdAt: new Date(), updatedAt: new Date(), }; @@ -66,14 +60,10 @@ describe('PersonsController', () => { describe('create', () => { it('should create a new person', async () => { const createPersonDto: CreatePersonDto = { - firstName: 'John', - lastName: 'Doe', - gender: Gender.MALE, - technicalLevel: 3, - hasTechnicalTraining: true, - frenchSpeakingLevel: 4, - oralEaseLevel: OralEaseLevel.COMFORTABLE, + name: 'John Doe', projectId: 'project1', + skills: ['JavaScript', 'TypeScript'], + metadata: {}, }; expect(await controller.create(createPersonDto)).toBe(mockPerson); @@ -106,7 +96,7 @@ describe('PersonsController', () => { it('should update a person', async () => { const id = 'person1'; const updatePersonDto: UpdatePersonDto = { - firstName: 'Jane', + name: 'Jane Doe', }; expect(await controller.update(id, updatePersonDto)).toBe(mockPerson); @@ -151,4 +141,4 @@ describe('PersonsController', () => { expect(service.removeFromGroup).toHaveBeenCalledWith(id, groupId); }); }); -}); \ No newline at end of file +}); diff --git a/backend/src/modules/persons/services/persons.service.spec.ts b/backend/src/modules/persons/services/persons.service.spec.ts index 5c609eb..f64783d 100644 --- a/backend/src/modules/persons/services/persons.service.spec.ts +++ b/backend/src/modules/persons/services/persons.service.spec.ts @@ -2,7 +2,6 @@ import { Test, TestingModule } from '@nestjs/testing'; import { PersonsService } from './persons.service'; import { NotFoundException } from '@nestjs/common'; import { DRIZZLE } from '../../../database/database.module'; -import { Gender, OralEaseLevel } from '../dto/create-person.dto'; describe('PersonsService', () => { let service: PersonsService; @@ -11,16 +10,10 @@ describe('PersonsService', () => { // Mock data const mockPerson = { id: 'person1', - firstName: 'John', - lastName: 'Doe', - gender: Gender.MALE, - technicalLevel: 3, - hasTechnicalTraining: true, - frenchSpeakingLevel: 4, - oralEaseLevel: OralEaseLevel.COMFORTABLE, - age: 30, + name: 'John Doe', projectId: 'project1', - attributes: {}, + skills: ['JavaScript', 'TypeScript'], + metadata: {}, createdAt: new Date(), updatedAt: new Date(), }; @@ -83,14 +76,10 @@ describe('PersonsService', () => { describe('create', () => { it('should create a new person', async () => { const createPersonDto = { - firstName: 'John', - lastName: 'Doe', - gender: Gender.MALE, - technicalLevel: 3, - hasTechnicalTraining: true, - frenchSpeakingLevel: 4, - oralEaseLevel: OralEaseLevel.COMFORTABLE, + name: 'John Doe', projectId: 'project1', + skills: ['JavaScript', 'TypeScript'], + metadata: {}, }; const result = await service.create(createPersonDto); @@ -159,7 +148,7 @@ describe('PersonsService', () => { it('should update a person', async () => { const id = 'person1'; const updatePersonDto = { - firstName: 'Jane', + name: 'Jane Doe', }; const result = await service.update(id, updatePersonDto); @@ -173,7 +162,7 @@ describe('PersonsService', () => { it('should throw NotFoundException if person not found', async () => { const id = 'nonexistent'; const updatePersonDto = { - firstName: 'Jane', + name: 'Jane Doe', }; mockDb.update.mockImplementationOnce(() => mockDbOperations); @@ -274,4 +263,4 @@ describe('PersonsService', () => { await expect(service.removeFromGroup(personId, groupId)).rejects.toThrow(NotFoundException); }); }); -}); \ No newline at end of file +}); diff --git a/backend/src/modules/projects/controllers/projects.controller.spec.ts b/backend/src/modules/projects/controllers/projects.controller.spec.ts index a7a5495..e39ce66 100644 --- a/backend/src/modules/projects/controllers/projects.controller.spec.ts +++ b/backend/src/modules/projects/controllers/projects.controller.spec.ts @@ -126,9 +126,13 @@ describe('ProjectsController', () => { it('should check if a user has access to a project', async () => { const projectId = 'project1'; const userId = 'user1'; + const mockRes = { + json: jest.fn().mockReturnValue(true) + }; - expect(await controller.checkUserAccess(projectId, userId)).toBe(true); + await controller.checkUserAccess(projectId, userId, mockRes); expect(service.checkUserAccess).toHaveBeenCalledWith(projectId, userId); + expect(mockRes.json).toHaveBeenCalledWith(true); }); });