@loopback/testlab
Version:
A collection of test utilities we use to write LoopBack tests.
36 lines (31 loc) • 968 B
text/typescript
// Copyright IBM Corp. and LoopBack contributors 2019. All Rights Reserved.
// Node module: @loopback/testlab
// This file is licensed under the MIT License.
// License text available at https://opensource.org/licenses/MIT
import {Request} from 'express';
import {IncomingMessage} from 'http';
/**
* Creates a Logger that logs an Error if the HTTP status code is not expected
*
* @param expectedStatusCode - HTTP status code that is expected
*/
export function createUnexpectedHttpErrorLogger(
expectedStatusCode?: number,
): LogError {
return function logUnexpectedHttpError(
err: Error,
statusCode: number,
req: IncomingMessage,
) {
if (statusCode === expectedStatusCode) return;
/* istanbul ignore next */
console.error(
'Unhandled error in %s %s: %s %s',
req.method,
req.url,
statusCode,
err.stack ?? err,
);
};
}
type LogError = (err: Error, statusCode: number, request: Request) => void;