diff --git a/src/media/backends/filesystem-backend.ts b/src/media/backends/filesystem-backend.ts index 34093a273..cbad1109b 100644 --- a/src/media/backends/filesystem-backend.ts +++ b/src/media/backends/filesystem-backend.ts @@ -4,10 +4,10 @@ * SPDX-License-Identifier: AGPL-3.0-only */ -import { Injectable } from '@nestjs/common'; -import { ConfigService } from '@nestjs/config'; +import { Inject, Injectable } from '@nestjs/common'; import { promises as fs } from 'fs'; import { join } from 'path'; +import applicationConfig, { AppConfig } from '../../config/app.config'; import { ConsoleLoggerService } from '../../logger/console-logger.service'; import { MediaBackend } from '../media-backend.interface'; import { BackendData } from '../media-upload.entity'; @@ -18,24 +18,11 @@ export class FilesystemBackend implements MediaBackend { constructor( private readonly logger: ConsoleLoggerService, - private configService: ConfigService, + @Inject(applicationConfig.KEY) + private appConfig: AppConfig, ) { this.logger.setContext(FilesystemBackend.name); - this.uploadDirectory = configService.get( - 'media.backend.filesystem.uploadPath', - ); - } - - private getFilePath(fileName: string): string { - return join(this.uploadDirectory, fileName); - } - - private async ensureDirectory() { - try { - await fs.access(this.uploadDirectory); - } catch (e) { - await fs.mkdir(this.uploadDirectory); - } + this.uploadDirectory = appConfig.media.backend.filesystem.uploadPath; } async saveFile( @@ -58,4 +45,16 @@ export class FilesystemBackend implements MediaBackend { // TODO: Add server address to url return Promise.resolve('/' + filePath); } + + private getFilePath(fileName: string): string { + return join(this.uploadDirectory, fileName); + } + + private async ensureDirectory() { + try { + await fs.access(this.uploadDirectory); + } catch (e) { + await fs.mkdir(this.uploadDirectory); + } + } } diff --git a/test/public-api/media.e2e-spec.ts b/test/public-api/media.e2e-spec.ts index 5fe9f10b8..daa6e60de 100644 --- a/test/public-api/media.e2e-spec.ts +++ b/test/public-api/media.e2e-spec.ts @@ -4,12 +4,14 @@ * SPDX-License-Identifier: AGPL-3.0-only */ +import { ConfigModule, registerAs } from '@nestjs/config'; import { NestExpressApplication } from '@nestjs/platform-express'; import { Test } from '@nestjs/testing'; import { TypeOrmModule } from '@nestjs/typeorm'; import { promises as fs } from 'fs'; import * as request from 'supertest'; import { PublicApiModule } from '../../src/api/public/public-api.module'; +import appConfigMock from '../../src/config/app.config.mock'; import { GroupsModule } from '../../src/groups/groups.module'; import { LoggerModule } from '../../src/logger/logger.module'; import { NestConsoleLoggerService } from '../../src/logger/nest-console-logger.service'; @@ -27,6 +29,10 @@ describe('Notes', () => { beforeAll(async () => { const moduleRef = await Test.createTestingModule({ imports: [ + ConfigModule.forRoot({ + isGlobal: true, + load: [appConfigMock], + }), PublicApiModule, MediaModule, TypeOrmModule.forRoot({ diff --git a/test/public-api/notes.e2e-spec.ts b/test/public-api/notes.e2e-spec.ts index 8385a706e..1846511ee 100644 --- a/test/public-api/notes.e2e-spec.ts +++ b/test/public-api/notes.e2e-spec.ts @@ -5,10 +5,12 @@ */ import { INestApplication } from '@nestjs/common'; +import { ConfigModule, registerAs } from '@nestjs/config'; import { Test } from '@nestjs/testing'; import { TypeOrmModule } from '@nestjs/typeorm'; import * as request from 'supertest'; import { PublicApiModule } from '../../src/api/public/public-api.module'; +import appConfigMock from '../../src/config/app.config.mock'; import { NotInDBError } from '../../src/errors/errors'; import { GroupsModule } from '../../src/groups/groups.module'; import { LoggerModule } from '../../src/logger/logger.module'; @@ -23,6 +25,10 @@ describe('Notes', () => { beforeAll(async () => { const moduleRef = await Test.createTestingModule({ imports: [ + ConfigModule.forRoot({ + isGlobal: true, + load: [appConfigMock], + }), PublicApiModule, NotesModule, PermissionsModule,