-
Bastien DUMONT authoredBastien DUMONT authored
parameters.service.spec.ts 2.66 KiB
import { HttpStatus } from '@nestjs/common';
import { getModelToken } from '@nestjs/mongoose';
import { Test, TestingModule } from '@nestjs/testing';
import { ParametersService } from './parameters.service';
import { Parameters } from './schemas/parameters.schema';
describe('ParametersService', () => {
let service: ParametersService;
const parametersModelMock = {
findOne: jest.fn(),
};
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [
ParametersService,
{
provide: getModelToken(Parameters.name),
useValue: parametersModelMock,
},
],
}).compile();
service = module.get<ParametersService>(ParametersService);
});
afterEach(() => {
jest.clearAllMocks();
});
it('should be defined', () => {
expect(service).toBeDefined();
});
describe('getParameters', () => {
it('should get parameters', async () => {
const spyer = jest.spyOn(parametersModelMock, 'findOne');
parametersModelMock.findOne.mockResolvedValueOnce({ lockdownInfoDisplay: false });
const result = await service.getParameters();
expect(spyer).toBeCalledTimes(1);
expect(result).toEqual({ lockdownInfoDisplay: false });
});
it('should throw error because parameters was not found', async () => {
const spyer = jest.spyOn(parametersModelMock, 'findOne');
parametersModelMock.findOne.mockResolvedValueOnce(null);
try {
await service.getParameters();
expect(true).toBe(false);
} catch (error) {
expect(error.message).toBe('Parameters not found');
expect(error.status).toBe(HttpStatus.NOT_FOUND);
}
expect(spyer).toBeCalledTimes(1);
});
});
describe('setParameters', () => {
it('should set parameters', async () => {
const spyer = jest.spyOn(parametersModelMock, 'findOne');
parametersModelMock.findOne.mockResolvedValueOnce({ lockdownInfoDisplay: false, save: jest.fn() });
const result = await service.setParameterLockdownInfoDisplay(true);
expect(spyer).toBeCalledTimes(1);
expect(result.lockdownInfoDisplay).toEqual(true);
});
it('should throw error because parameters was not found', async () => {