diff --git a/src/auth/auth.service.spec.ts b/src/auth/auth.service.spec.ts index df9d1a1de..cf9de2666 100644 --- a/src/auth/auth.service.spec.ts +++ b/src/auth/auth.service.spec.ts @@ -1,23 +1,24 @@ import { Test, TestingModule } from '@nestjs/testing'; import { AuthService } from './auth.service'; -import { UsersModule } from '../users/users.module'; +import { PassportModule } from '@nestjs/passport'; import { getRepositoryToken } from '@nestjs/typeorm'; +import { AuthToken } from '../users/auth-token.entity'; import { User } from '../users/user.entity'; +import { UsersModule } from '../users/users.module'; +import { Identity } from '../users/identity.entity'; describe('AuthService', () => { let service: AuthService; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ - providers: [ - AuthService, - { - provide: getRepositoryToken(User), - useValue: {}, - }, - ], - imports: [UsersModule], + providers: [AuthService], + imports: [PassportModule, UsersModule], }) + .overrideProvider(getRepositoryToken(AuthToken)) + .useValue({}) + .overrideProvider(getRepositoryToken(Identity)) + .useValue({}) .overrideProvider(getRepositoryToken(User)) .useValue({}) .compile(); diff --git a/src/auth/mock-auth.guard.ts b/src/auth/mock-auth.guard.ts new file mode 100644 index 000000000..9d15bc83e --- /dev/null +++ b/src/auth/mock-auth.guard.ts @@ -0,0 +1,18 @@ +/* + * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { ExecutionContext, Injectable } from '@nestjs/common'; + +@Injectable() +export class MockAuthGuard { + canActivate(context: ExecutionContext) { + const req = context.switchToHttp().getRequest(); + req.user = { + userName: 'hardcoded', + }; + return true; + } +} diff --git a/test/public-api/media.e2e-spec.ts b/test/public-api/media.e2e-spec.ts index 6d1c3d14d..f4b57ebf0 100644 --- a/test/public-api/media.e2e-spec.ts +++ b/test/public-api/media.e2e-spec.ts @@ -21,6 +21,9 @@ import { NotesModule } from '../../src/notes/notes.module'; import { NotesService } from '../../src/notes/notes.service'; import { PermissionsModule } from '../../src/permissions/permissions.module'; import { UsersService } from '../../src/users/users.service'; +import { AuthModule } from '../../src/auth/auth.module'; +import { TokenAuthGuard } from '../../src/auth/token-auth.guard'; +import { MockAuthGuard } from '../../src/auth/mock-auth.guard'; describe('Notes', () => { let app: NestExpressApplication; @@ -46,8 +49,12 @@ describe('Notes', () => { PermissionsModule, GroupsModule, LoggerModule, + AuthModule, ], - }).compile(); + }) + .overrideGuard(TokenAuthGuard) + .useClass(MockAuthGuard) + .compile(); app = moduleRef.createNestApplication(); app.useStaticAssets('uploads', { prefix: '/uploads', diff --git a/test/public-api/notes.e2e-spec.ts b/test/public-api/notes.e2e-spec.ts index 500e880c3..bf9ca8c55 100644 --- a/test/public-api/notes.e2e-spec.ts +++ b/test/public-api/notes.e2e-spec.ts @@ -17,6 +17,10 @@ import { LoggerModule } from '../../src/logger/logger.module'; import { NotesModule } from '../../src/notes/notes.module'; import { NotesService } from '../../src/notes/notes.service'; import { PermissionsModule } from '../../src/permissions/permissions.module'; +import { AuthModule } from '../../src/auth/auth.module'; +import { TokenAuthGuard } from '../../src/auth/token-auth.guard'; +import { MockAuthGuard } from '../../src/auth/mock-auth.guard'; +import { UsersService } from '../../src/users/users.service'; describe('Notes', () => { let app: INestApplication; @@ -41,12 +45,18 @@ describe('Notes', () => { dropSchema: true, }), LoggerModule, + AuthModule, ], - }).compile(); + }) + .overrideGuard(TokenAuthGuard) + .useClass(MockAuthGuard) + .compile(); app = moduleRef.createNestApplication(); await app.init(); notesService = moduleRef.get(NotesService); + const usersService: UsersService = moduleRef.get('UsersService'); + await usersService.createUser('testy', 'Testy McTestFace'); }); it(`POST /notes`, async () => {