Skip to content
Snippets Groups Projects
temp-user.controller.spec.ts 1.6 KiB
Newer Older
Hugo SUBTIL's avatar
Hugo SUBTIL committed
import { HttpModule, HttpStatus } from '@nestjs/common';
import { Test, TestingModule } from '@nestjs/testing';
import { MailerModule } from '../mailer/mailer.module';
import { TempUserController } from './temp-user.controller';
import { TempUserService } from './temp-user.service';

describe('TempUserService', () => {
  let controller: TempUserController;

  const mockTempUserService = {
    findById: jest.fn(),
  };

  beforeEach(async () => {
    const module: TestingModule = await Test.createTestingModule({
      imports: [HttpModule, MailerModule],
      providers: [{ provide: TempUserService, useValue: mockTempUserService }],
      controllers: [TempUserController],
    }).compile();

    controller = module.get<TempUserController>(TempUserController);
  });

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

  describe('getTempUser', () => {
    it('should get temporary users', async () => {
      const tmpUser = { email: 'test@test.com', pendingStructuresLink: [] };
      mockTempUserService.findById.mockReturnValueOnce(tmpUser);
      expect(await controller.getTempUser('addq651')).toEqual(tmpUser);
    });
    it('should throw error in cas of no users', async () => {
      const tmpUser = null;
      mockTempUserService.findById.mockReturnValueOnce(tmpUser);
      try {
        await controller.getTempUser('addq651');
        // Fail test if above expression doesn't throw anything.
        expect(true).toBe(false);
      } catch (e) {
        expect(e.message).toEqual('User does not exists');
        expect(e.status).toEqual(HttpStatus.BAD_REQUEST);
      }
    });
  });
});