Skip to content
Snippets Groups Projects
contact.controller.spec.ts 1.16 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { Test, TestingModule } from '@nestjs/testing';
    import { ContactController } from './contact.controller';
    import { ContactService } from './contact.service';
    import { MailerModule } from '../mailer/mailer.module';
    
    import { ContactMessage } from './schemas/contact-message.schema';
    
    
    describe('ContactController', () => {
      let controller: ContactController;
    
    
      const contactServiceMock = {
        sendMessage: jest.fn(),
      };
    
    
      beforeEach(async () => {
        const module: TestingModule = await Test.createTestingModule({
          imports: [MailerModule],
    
          providers: [
            {
              provide: ContactService,
              useValue: contactServiceMock,
            },
          ],
    
          controllers: [ContactController],
        }).compile();
    
        controller = module.get<ContactController>(ContactController);
      });
    
      it('should be defined', () => {
        expect(controller).toBeDefined();
      });
    
    
      it('should call sendMessage', async () => {
        const spyer = jest.spyOn(contactServiceMock, 'sendMessage');
        await controller.sendContactMessage({ contactMessage: new ContactMessage() });
        expect(spyer).toBeCalledTimes(1);
        expect(spyer).toBeCalledWith(new ContactMessage());
      });