import { Test, TestingModule } from '@nestjs/testing'; import { AssistantesMaternellesController } from './assistantes_maternelles.controller'; import { AssistantesMaternellesService } from './assistantes_maternelles.service'; import { AuthService } from '../auth/auth.service'; import { AuthGuard } from 'src/common/guards/auth.guard'; import { RolesGuard } from 'src/common/guards/roles.guard'; describe('AssistantesMaternellesController', () => { let controller: AssistantesMaternellesController; const authServiceMock = { createAmDossierStaff: jest.fn(), }; const amServiceMock = {}; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ controllers: [AssistantesMaternellesController], providers: [ { provide: AssistantesMaternellesService, useValue: amServiceMock }, { provide: AuthService, useValue: authServiceMock }, ], }) .overrideGuard(AuthGuard) .useValue({ canActivate: () => true }) .overrideGuard(RolesGuard) .useValue({ canActivate: () => true }) .compile(); controller = module.get(AssistantesMaternellesController); jest.clearAllMocks(); }); it('should be defined', () => { expect(controller).toBeDefined(); }); it('createDossier delegates to authService.createAmDossierStaff with CGU accepted', async () => { authServiceMock.createAmDossierStaff.mockResolvedValue({ message: 'ok', user_id: 'u1', statut: 'actif', numero_dossier: '2026-000001', }); const body = { email: 'am.staff@test.fr', prenom: 'Marie', nom: 'TEST', telephone: '0689567890', consentement_photo: false, lieu_naissance_ville: 'Paris', lieu_naissance_pays: 'France', nir: '285017512345678', numero_agrement: 'AGR-TEST-001', capacite_accueil: 3, places_disponibles: 2, }; const res = await controller.createDossier(body as any); expect(authServiceMock.createAmDossierStaff).toHaveBeenCalledWith( expect.objectContaining({ email: body.email, acceptation_cgu: true, acceptation_privacy: true, }), ); expect(res.numero_dossier).toBe('2026-000001'); }); });