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';
|
||||
let server;
|
||||
|
||||
let lastError;
|
||||
|
||||
const parseServer = ParseServer.ParseServer(
|
||||
Object.assign({}, defaultConfiguration, {
|
||||
appId: appId,
|
||||
@@ -25,8 +23,8 @@ describe('Enable express error handler', () => {
|
||||
server = app.listen(12667);
|
||||
|
||||
app.use(function(err, req, res, next) {
|
||||
next;
|
||||
lastError = err;
|
||||
expect(err.message).toBe('Object not found.');
|
||||
next(err);
|
||||
});
|
||||
|
||||
request({
|
||||
@@ -43,15 +41,8 @@ describe('Enable express error handler', () => {
|
||||
fail('Should throw error');
|
||||
})
|
||||
.catch(response => {
|
||||
const reqError = response.data;
|
||||
expect(reqError).toBeDefined();
|
||||
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);
|
||||
expect(response).toBeDefined();
|
||||
expect(response.status).toEqual(500);
|
||||
})
|
||||
.then(() => {
|
||||
server.close(done);
|
||||
|
||||
@@ -325,6 +325,9 @@ export function allowMethodOverride(req, res, next) {
|
||||
export function handleParseErrors(err, req, res, next) {
|
||||
const log = (req.config && req.config.loggerController) || defaultLogger;
|
||||
if (err instanceof Parse.Error) {
|
||||
if (req.config && req.config.enableExpressErrorHandler) {
|
||||
return next(err);
|
||||
}
|
||||
let httpStatus;
|
||||
// TODO: fill out this mapping
|
||||
switch (err.code) {
|
||||
@@ -337,13 +340,9 @@ export function handleParseErrors(err, req, res, next) {
|
||||
default:
|
||||
httpStatus = 400;
|
||||
}
|
||||
|
||||
res.status(httpStatus);
|
||||
res.json({ code: err.code, error: err.message });
|
||||
log.error('Parse error: ', err);
|
||||
if (req.config && req.config.enableExpressErrorHandler) {
|
||||
next(err);
|
||||
}
|
||||
} else if (err.status && err.message) {
|
||||
res.status(err.status);
|
||||
res.json({ error: err.message });
|
||||
|
||||
Reference in New Issue
Block a user