fixing enableExpressErrorHandler logic (#6423)
* fixing enableExpressErrorHandler logic * Fix tests Co-authored-by: n.andryukhin <n.andryukhin@mediasoft.team> Co-authored-by: Diamond Lewis <findlewis@gmail.com>
This commit is contained in:
committed by
GitHub
parent
927676b34e
commit
c178acd347
@@ -9,8 +9,6 @@ describe('Enable express error handler', () => {
|
|||||||
const masterKey = 'anOtherTestMasterKey';
|
const masterKey = 'anOtherTestMasterKey';
|
||||||
let server;
|
let server;
|
||||||
|
|
||||||
let lastError;
|
|
||||||
|
|
||||||
const parseServer = ParseServer.ParseServer(
|
const parseServer = ParseServer.ParseServer(
|
||||||
Object.assign({}, defaultConfiguration, {
|
Object.assign({}, defaultConfiguration, {
|
||||||
appId: appId,
|
appId: appId,
|
||||||
@@ -25,8 +23,8 @@ describe('Enable express error handler', () => {
|
|||||||
server = app.listen(12667);
|
server = app.listen(12667);
|
||||||
|
|
||||||
app.use(function(err, req, res, next) {
|
app.use(function(err, req, res, next) {
|
||||||
next;
|
expect(err.message).toBe('Object not found.');
|
||||||
lastError = err;
|
next(err);
|
||||||
});
|
});
|
||||||
|
|
||||||
request({
|
request({
|
||||||
@@ -43,15 +41,8 @@ describe('Enable express error handler', () => {
|
|||||||
fail('Should throw error');
|
fail('Should throw error');
|
||||||
})
|
})
|
||||||
.catch(response => {
|
.catch(response => {
|
||||||
const reqError = response.data;
|
expect(response).toBeDefined();
|
||||||
expect(reqError).toBeDefined();
|
expect(response.status).toEqual(500);
|
||||||
expect(lastError).toBeDefined();
|
|
||||||
|
|
||||||
expect(lastError.code).toEqual(101);
|
|
||||||
expect(lastError.message).toEqual('Object not found.');
|
|
||||||
|
|
||||||
expect(lastError.code).toEqual(reqError.code);
|
|
||||||
expect(lastError.message).toEqual(reqError.error);
|
|
||||||
})
|
})
|
||||||
.then(() => {
|
.then(() => {
|
||||||
server.close(done);
|
server.close(done);
|
||||||
|
|||||||
@@ -325,6 +325,9 @@ export function allowMethodOverride(req, res, next) {
|
|||||||
export function handleParseErrors(err, req, res, next) {
|
export function handleParseErrors(err, req, res, next) {
|
||||||
const log = (req.config && req.config.loggerController) || defaultLogger;
|
const log = (req.config && req.config.loggerController) || defaultLogger;
|
||||||
if (err instanceof Parse.Error) {
|
if (err instanceof Parse.Error) {
|
||||||
|
if (req.config && req.config.enableExpressErrorHandler) {
|
||||||
|
return next(err);
|
||||||
|
}
|
||||||
let httpStatus;
|
let httpStatus;
|
||||||
// TODO: fill out this mapping
|
// TODO: fill out this mapping
|
||||||
switch (err.code) {
|
switch (err.code) {
|
||||||
@@ -337,13 +340,9 @@ export function handleParseErrors(err, req, res, next) {
|
|||||||
default:
|
default:
|
||||||
httpStatus = 400;
|
httpStatus = 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
res.status(httpStatus);
|
res.status(httpStatus);
|
||||||
res.json({ code: err.code, error: err.message });
|
res.json({ code: err.code, error: err.message });
|
||||||
log.error('Parse error: ', err);
|
log.error('Parse error: ', err);
|
||||||
if (req.config && req.config.enableExpressErrorHandler) {
|
|
||||||
next(err);
|
|
||||||
}
|
|
||||||
} else if (err.status && err.message) {
|
} else if (err.status && err.message) {
|
||||||
res.status(err.status);
|
res.status(err.status);
|
||||||
res.json({ error: err.message });
|
res.json({ error: err.message });
|
||||||
|
|||||||
Reference in New Issue
Block a user