Skip to content
Snippets Groups Projects
onlineMediation.service.spec.ts 1.77 KiB
Newer Older
import { getModelToken } from '@nestjs/mongoose';
import { Test, TestingModule } from '@nestjs/testing';
import { OnlineMediationService } from './onlineMediation.service';
import { onlineMediationMockData } from '../../test/mock/data/onlineMediation.mock.data';

describe('userRegistryService', () => {
  let service: OnlineMediationService;
  const mockOnlineMediationModel = {
    find: jest.fn(() => mockOnlineMediationModel),
    create: jest.fn(() => mockOnlineMediationModel),
    sort: jest.fn(() => mockOnlineMediationModel),
    exec: jest.fn(() => mockOnlineMediationModel),
  };

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      imports: [],
      providers: [
        OnlineMediationService,
        {
          provide: getModelToken('OnlineMediation'),
          useValue: mockOnlineMediationModel,
        },
      ],
    }).compile();
    service = module.get<OnlineMediationService>(OnlineMediationService);
  });

  it('should be defined', () => {
    expect(service).toBeDefined();
  });

  describe('findAll', () => {
    it('should findAll entries', async () => {
      mockOnlineMediationModel.exec.mockResolvedValueOnce(onlineMediationMockData);
      expect(await service.getAll()).toBe(onlineMediationMockData);
    });
  });
  describe('create', () => {
    it('should create an entry', async () => {
      const res = {
        accompanimentType: 'RDV Conseiller Numérique',
        dateSlot: { day: 'Vendredi', hours: '15h00-17h00' },
        name: 'test',
        onlineDemarchType: ['Démarches Métropolitaines', 'CPAM'],
        phone: '65 65',
        surname: 'teztrfzegfv',
      };
      mockOnlineMediationModel.create.mockResolvedValueOnce(res);
      expect(await service.create(res)).toStrictEqual(res);
    });
  });
});