Newer
Older
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);
});
});
});