import { getModelToken } from '@nestjs/mongoose'; import { Test } from '@nestjs/testing'; import { appointmentMockData, singleAppointmentMock } from '../../test/mock/data/appointment.mock.data'; import { AppointmentController } from './appointment.controller'; import { Appointment } from './appointment.schema'; import { AppointmentService } from './appointment.service'; describe('UserRegistryController', () => { let appoinmentController: AppointmentController; const appointmentServiceMock = { findAll: jest.fn(), create: jest.fn(), }; beforeEach(async () => { const module = await Test.createTestingModule({ imports: [], providers: [ { provide: AppointmentService, useValue: appointmentServiceMock, }, { provide: getModelToken('Appointment'), useValue: Appointment, }, ], controllers: [AppointmentController], }).compile(); appoinmentController = module.get<AppointmentController>(AppointmentController); }); it('should be defined', () => { expect(appoinmentController).toBeDefined(); }); describe('findAll', () => { it('should findAll entries', async () => { appointmentServiceMock.findAll.mockResolvedValue(appointmentMockData); const reply = await appoinmentController.findAll(); expect(reply).toStrictEqual(appointmentMockData); }); }); describe('createAppointment', () => { it('should create a new entry', async () => { appointmentServiceMock.create.mockResolvedValue(singleAppointmentMock); const reply = await appoinmentController.createAppointment(singleAppointmentMock); expect(reply).toStrictEqual(singleAppointmentMock); }); }); });