hedgedoc/test/app.e2e-spec.ts
David Mehren cd5256da7f refactor(db-config): Use typeorm-style options
TypeORM does not use a separate config option for the path
to the SQLite file.
Additionally, the "dialect" is called "type."

This commit adjusts our config to follow the upstream convention
to reduce confusion.

Signed-off-by: David Mehren <git@herrmehren.de>
2022-05-01 20:49:09 +02:00

58 lines
1.6 KiB
TypeScript

/*
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { getConfigToken } from '@nestjs/config';
import { Test } from '@nestjs/testing';
import request from 'supertest';
import { AppModule } from '../src/app.module';
import { BackendType } from '../src/media/backends/backend-type.enum';
describe('App', () => {
it('should not crash on requests to /', async () => {
const moduleRef = await Test.createTestingModule({
imports: [AppModule],
})
.overrideProvider(getConfigToken('appConfig'))
.useValue({
domain: 'localhost',
port: 3333,
loglevel: 'debug',
})
.overrideProvider(getConfigToken('mediaConfig'))
.useValue({
backend: {
use: BackendType.FILESYSTEM,
filesystem: {
uploadPath:
'test_uploads' + Math.floor(Math.random() * 100000).toString(),
},
},
})
.overrideProvider(getConfigToken('databaseConfig'))
.useValue({
database: ':memory:',
type: 'sqlite',
})
.overrideProvider(getConfigToken('authConfig'))
.useValue({
session: {
secret: 'secret',
},
})
.compile();
/**
* TODO: This is not really a regression test, as it does not use the
* real initialization code in main.ts.
* Should be fixed after https://github.com/hedgedoc/hedgedoc/issues/2083
* is done.
*/
const app = moduleRef.createNestApplication();
await app.init();
await request(app.getHttpServer()).get('/').expect(404);
await app.close();
});
});