refactor: parameterize configureApp function (inject db list)

Reason: easier testing (mocking) and better readability

Note: did additional refactoring
This commit is contained in:
Jovan Krunić
2020-10-23 10:31:25 +02:00
committed by Rainer Killinger
parent f3b86f0f0d
commit fe7dd09d7e
5 changed files with 58 additions and 38 deletions

View File

@@ -38,12 +38,11 @@ import {thingUpdateRouter} from './routes/thing-update-route';
import {virtualPluginRoute} from './routes/virtual-plugin-route';
import {BulkStorage} from './storage/bulk-storage';
import {DatabaseConstructor} from './storage/database';
import {Elasticsearch} from './storage/elasticsearch/elasticsearch';
/**
* Configure the backend
*/
export async function configureApp(app: Express) {
export async function configureApp(app: Express, databases: {[name: string]: DatabaseConstructor; }) {
let integrationTestTimeout: NodeJS.Timeout;
// request loggers have to be the first middleware to be set in express
app.use(morgan('dev', {
@@ -59,11 +58,8 @@ export async function configureApp(app: Express) {
}
// tslint:disable-next-line: no-magic-numbers
if (res.statusCode < 400) {
return true;
}
return res.statusCode < 400;
return false;
}, stream: process.stdout,
}));
@@ -142,10 +138,6 @@ export async function configureApp(app: Express) {
.on('end', endCallback);
});
const databases: {[name: string]: DatabaseConstructor; } = {
elasticsearch: Elasticsearch,
};
// validate config file
await validator.addSchemas(join('node_modules', '@openstapps', 'core', 'lib', 'schema'));