hedgedoc/backend/test/app.e2e-spec.ts

60 lines
1.7 KiB
TypeScript
Raw Permalink Normal View History

/*
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import { getConfigToken } from '@nestjs/config';
import { WsAdapter } from '@nestjs/platform-ws';
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({
baseUrl: 'localhost',
port: 3333,
})
.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();
app.useWebSocketAdapter(new WsAdapter(app));
await app.init();
await request(app.getHttpServer()).get('/').expect(404);
await app.close();
});
});