feat: utilize api-cli for e2e integration test

This commit is contained in:
Rainer Killinger
2020-04-14 12:56:37 +02:00
committed by Rainer Killinger
parent bbbe4d5f1f
commit ce06e735be
7 changed files with 943 additions and 876 deletions

View File

@@ -44,8 +44,29 @@ import {Elasticsearch} from './storage/elasticsearch/elasticsearch';
* Configure the backend
*/
export async function configureApp(app: Express) {
let integrationTestTimeout: NodeJS.Timeout;
// request loggers have to be the first middleware to be set in express
app.use(morgan('dev'));
app.use(morgan('dev', {
skip: (_req, res) => {
if (process.env.NODE_ENV === 'integration-test') {
clearTimeout(integrationTestTimeout);
integrationTestTimeout = setTimeout(() => {
process.exit(1);
},
// tslint:disable-next-line:no-magic-numbers
20000);
return false;
}
// tslint:disable-next-line: no-magic-numbers
if (res.statusCode < 400) {
return true;
}
return false;
}, stream: process.stdout,
}));
const corsOptions = {
allowedHeaders: [

View File

@@ -34,9 +34,8 @@ app.set('port', port);
const server = http.createServer(app);
/**
* Listen on provided port, on all network interfaces.
* Define server handling for specific events
*/
server.listen(port);
server.on('error', onError);
server.on('listening', onListening);
@@ -101,6 +100,8 @@ function onListening() {
configureApp(app)
.then(() => {
Logger.ok('Sucessfully configured express server');
// After app setup listen on provided port, on all network interfaces
server.listen(port);
})
.catch((err) => {
throw err;

View File

@@ -84,7 +84,7 @@ export function createRoute<REQUESTTYPE, RETURNTYPE>(
);
res.status(error.statusCode);
res.json(error);
Logger.warn(error);
await Logger.error(error);
return;
}
@@ -108,7 +108,7 @@ export function createRoute<REQUESTTYPE, RETURNTYPE>(
);
res.status(internalServerError.statusCode);
res.json(internalServerError);
Logger.warn(internalServerError);
await Logger.error(internalServerError);
return;
}
@@ -124,7 +124,7 @@ export function createRoute<REQUESTTYPE, RETURNTYPE>(
// respond with the error from the handler
res.status(error.statusCode);
res.json(error);
Logger.warn(error);
await Logger.error(error);
} else {
// the error is not allowed so something went wrong
const internalServerError = new SCInternalServerErrorResponse(