Skip to content
Snippets Groups Projects
Select Git revision
  • f28888ff4f4959d6e728efbd6e3d240e5fb2f592
  • master default protected
  • renovate/configure
  • development protected
  • node_update
  • DOS0063936
  • changelog
  • resources
  • v1.7.2
  • v1.7.1
  • v1.7.0
  • v1.6.0
  • v1.5.2
  • v1.5.1
  • v1.5.0
  • v1.4.0
  • v1.3.0
  • v1.2.0
  • v1.1.0
  • v1.0.0
20 results

package-lock.json

Blame
  • auth.controller.spec.ts 2.30 KiB
    import { JwtModule } from '@nestjs/jwt';
    import { getModelToken } from '@nestjs/mongoose';
    import { PassportModule } from '@nestjs/passport';
    import { Test, TestingModule } from '@nestjs/testing';
    import { ConfigurationModule } from '../configuration/configuration.module';
    import { MailerModule } from '../mailer/mailer.module';
    import { User } from '../users/schemas/user.schema';
    import { UsersService } from '../users/users.service';
    import { AuthController } from './auth.controller';
    import { AuthService } from './auth.service';
    import * as dotenv from 'dotenv';
    import { LoginDto } from './login-dto';
    import { HttpException, HttpStatus } from '@nestjs/common';
    
    describe('AuthController', () => {
      let controller: AuthController;
      // let service: AuthService;
    
      beforeEach(async () => {
        const module: TestingModule = await Test.createTestingModule({
          imports: [
            PassportModule,
            MailerModule,
            ConfigurationModule,
            JwtModule.register({
              secret: process.env.JWT_SECRET,
              signOptions: { expiresIn: '86400s' }, // 24h validity
            }),
          ],
          controllers: [AuthController],
          providers: [
            AuthService,
            UsersService,
            {
              provide: getModelToken('User'),
              useValue: User,
            },
          ],
        }).compile();
    
        controller = module.get<AuthController>(AuthController);
      });
    
      it('should be defined', () => {
        expect(controller).toBeDefined();
      });
    
      it('should login valid user', async () => {
        const result = { username: 'paula.dubois@mii.com', token: 'tok3N', name: 'paula', surname: 'dubois' };
        jest.spyOn(controller, 'login').mockImplementation(async (): Promise<{ username; name; surname; token }> => result);
        const loginCredentials: LoginDto = { email: 'paula.dubois@mii.com', password: process.env.USER_PWD };
        expect(await controller.login(loginCredentials)).toBe(result);
      });
    
      it('should not login valid user', async () => {
        const result: HttpException = new HttpException('Invalid credentials', HttpStatus.UNAUTHORIZED);
        jest.spyOn(controller, 'login').mockImplementation(async (): Promise<any> => result);
        const loginCredentials: LoginDto = { email: 'paula.dubois@mii.com', password: process.env.USER_PWD };
        expect(await controller.login(loginCredentials)).toBe(result);
      });
    });