From 18c6694bcb38ad291c146de2f472f5cd87333088 Mon Sep 17 00:00:00 2001 From: David Mehren Date: Fri, 8 Jan 2021 12:56:25 +0100 Subject: [PATCH] Add config to tests in various places Signed-off-by: David Mehren --- src/api/public/media/media.controller.spec.ts | 12 +++++++++++- src/config/app.config.mock.ts | 19 +++++++++++++++++++ src/media/media.service.spec.ts | 14 +++++++++++++- src/media/media.service.ts | 2 +- 4 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 src/config/app.config.mock.ts diff --git a/src/api/public/media/media.controller.spec.ts b/src/api/public/media/media.controller.spec.ts index fb05c0422..5319a3bb9 100644 --- a/src/api/public/media/media.controller.spec.ts +++ b/src/api/public/media/media.controller.spec.ts @@ -4,8 +4,10 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import { ConfigModule } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; import { getRepositoryToken } from '@nestjs/typeorm'; +import appConfigMock from '../../../config/app.config.mock'; import { LoggerModule } from '../../../logger/logger.module'; import { MediaUpload } from '../../../media/media-upload.entity'; import { MediaModule } from '../../../media/media.module'; @@ -26,7 +28,15 @@ describe('Media Controller', () => { beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ controllers: [MediaController], - imports: [LoggerModule, MediaModule, NotesModule], + imports: [ + ConfigModule.forRoot({ + isGlobal: true, + load: [appConfigMock], + }), + LoggerModule, + MediaModule, + NotesModule, + ], }) .overrideProvider(getRepositoryToken(AuthorColor)) .useValue({}) diff --git a/src/config/app.config.mock.ts b/src/config/app.config.mock.ts new file mode 100644 index 000000000..825a0b90d --- /dev/null +++ b/src/config/app.config.mock.ts @@ -0,0 +1,19 @@ +/* + * SPDX-FileCopyrightText: 2021 The HedgeDoc developers (see AUTHORS file) + * + * SPDX-License-Identifier: AGPL-3.0-only + */ + +import { registerAs } from '@nestjs/config'; + +export default registerAs('appConfig', () => ({ + port: 3000, + media: { + backend: { + use: 'filesystem', + filesystem: { + uploadPath: 'uploads', + }, + }, + }, +})); diff --git a/src/media/media.service.spec.ts b/src/media/media.service.spec.ts index 51522de5b..d6c804f87 100644 --- a/src/media/media.service.spec.ts +++ b/src/media/media.service.spec.ts @@ -4,8 +4,10 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import { ConfigModule } from '@nestjs/config'; import { Test, TestingModule } from '@nestjs/testing'; import { getRepositoryToken } from '@nestjs/typeorm'; +import appConfigMock from '../config/app.config.mock'; import { LoggerModule } from '../logger/logger.module'; import { AuthorColor } from '../notes/author-color.entity'; import { Note } from '../notes/note.entity'; @@ -17,6 +19,7 @@ import { AuthToken } from '../users/auth-token.entity'; import { Identity } from '../users/identity.entity'; import { User } from '../users/user.entity'; import { UsersModule } from '../users/users.module'; +import { FilesystemBackend } from './backends/filesystem-backend'; import { MediaUpload } from './media-upload.entity'; import { MediaService } from './media.service'; @@ -31,8 +34,17 @@ describe('MediaService', () => { provide: getRepositoryToken(MediaUpload), useValue: {}, }, + FilesystemBackend, + ], + imports: [ + ConfigModule.forRoot({ + isGlobal: true, + load: [appConfigMock], + }), + LoggerModule, + NotesModule, + UsersModule, ], - imports: [LoggerModule, NotesModule, UsersModule], }) .overrideProvider(getRepositoryToken(AuthorColor)) .useValue({}) diff --git a/src/media/media.service.ts b/src/media/media.service.ts index 7cb26cb31..f79800475 100644 --- a/src/media/media.service.ts +++ b/src/media/media.service.ts @@ -8,8 +8,8 @@ import { Inject, Injectable } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; import { InjectRepository } from '@nestjs/typeorm'; import * as FileType from 'file-type'; -import applicationConfig, { AppConfig } from 'src/config/app.config'; import { Repository } from 'typeorm'; +import applicationConfig, { AppConfig } from '../config/app.config'; import { ClientError, NotInDBError, PermissionError } from '../errors/errors'; import { ConsoleLoggerService } from '../logger/console-logger.service'; import { NotesService } from '../notes/notes.service';