Skip to content
Snippets Groups Projects
Select Git revision
  • 2a38e42894bc2c3bf7390052675b26888afae2c0
  • dev default protected
  • 713-disable-robots-index
  • 718-evenement-filtre-commune
  • renovate/major-nest-monorepo
  • renovate/luxon-3.x
  • renovate/gouvfr-anct-timetable-to-osm-opening-hours-2.x
  • renovate/major-typescript-eslint-monorepo
  • renovate/npm-11.x
  • renovate/mysql-9.x
  • renovate/mongo-express-1.x
  • renovate/major-jest-monorepo
  • renovate/tsconfig-paths-4.x
  • renovate/jest-junit-16.x
  • renovate/express-5.x
  • renovate/bitnami-mongodb-8.x
  • renovate/elastic-elasticsearch-8.x
  • renovate/ghost-5.x
  • renovate/ghcr.io-browserless-chromium-2.x
  • renovate/elasticsearch-7.x
  • renovate/devdependencies-(non-major)
  • v4.0.3
  • v4.0.1
  • v4.0.0
  • v3.4.3
  • v3.4.2
  • v3.4.1
  • v3.4.0
  • v3.3.1
  • v3.3.0
  • v3.2.0
  • v3.1.0
  • v3.0.1
  • v3.0.0
  • v2.5.0
  • v2.4.2
  • v2.4.1
  • v2.4.0
  • v2.3.2
  • v2.3.1
  • v2.3.0
41 results

tclStopPoint.schema.ts

Blame
  • auth.controller.spec.ts 2.70 KiB
    import { JwtModule } from '@nestjs/jwt';
    import { getModelToken } from '@nestjs/mongoose';
    import { PassportModule } from '@nestjs/passport';
    import { Test, TestingModule } from '@nestjs/testing';
    import { AuthServiceMock } from '../../test/mock/services/auth.mock.service';
    import { ConfigurationModule } from '../configuration/configuration.module';
    import { MailerModule } from '../mailer/mailer.module';
    import { User } from '../users/schemas/user.schema';
    import { UserRegistrySearchService } from '../users/services/userRegistry-search.service';
    import { UsersService } from '../users/services/users.service';
    import { AuthController } from './auth.controller';
    import { AuthService } from './auth.service';
    import { LoginDto } from './login-dto';
    
    describe('AuthController', () => {
      let controller: AuthController;
    
      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: UserRegistrySearchService,
              useClass: jest.fn(),
            },
            {
              provide: AuthService,
              useClass: AuthServiceMock,
            },
            {
              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 loginCredentials: LoginDto = { email: 'paula.dubois@mii.com', password: process.env.USER_PWD };
        const result = await controller.login(loginCredentials);
        expect(result).toStrictEqual({
          _id: 'tsfsf6296',
          email: 'pauline.dupont@mii.com',
          emailVerified: true,
          name: 'DUBOIS',
          password: '$2a$12$vLQjJ9zAWyUwiFLeQDa6w.XzrlgPBhw.2GWrjog/yuEjIaZnQwmZu',
          role: 0,
          surname: 'Paula',
          validationToken:
            'cf1c74c22cedb6b575945098db42d2f493fb759c9142c6aff7980f252886f36ee086574ee99a06bc99119079257116c959c8ec870949cebdef2b293666dbca42',
        });
      });
    
      it('should not login invalid user', async () => {
        const loginCredentials: LoginDto = { email: 'jacques.dupont@mii.com', password: process.env.USER_PWD };
        try {
          await controller.login(loginCredentials);
        } catch (e) {
          expect(e.response).toBe('Invalid credentials');
          expect(e.message).toBe('Invalid credentials');
          expect(e.status).toBe(401);
        }
      });
    });