mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-17 23:44:39 -05:00
Fix usage of member function for errors
no issue
This commit is contained in:
parent
cda07b2009
commit
6a5ea251a5
2 changed files with 76 additions and 8 deletions
|
@ -1,6 +1,7 @@
|
|||
const _ = require('lodash');
|
||||
const debug = require('@tryghost/debug')('error-handler');
|
||||
const errors = require('@tryghost/errors');
|
||||
const {prepareStackForUser} = require('@tryghost/errors').utils;
|
||||
const tpl = require('@tryghost/tpl');
|
||||
|
||||
const messages = {
|
||||
|
@ -77,7 +78,7 @@ module.exports.prepareError = (err, req, res, next) => {
|
|||
// alternative for res.status();
|
||||
res.statusCode = err.statusCode;
|
||||
|
||||
err = err.prepareErrorForUser();
|
||||
prepareStackForUser(err);
|
||||
|
||||
// never cache errors
|
||||
res.set({
|
||||
|
@ -117,14 +118,14 @@ const jsonErrorRendererV2 = (err, req, res, next) => { // eslint-disable-line no
|
|||
});
|
||||
};
|
||||
|
||||
const prepareUserMessage = (err, res) => {
|
||||
const prepareUserMessage = (err, req) => {
|
||||
const userError = {
|
||||
message: err.message,
|
||||
context: err.context
|
||||
};
|
||||
|
||||
const docName = _.get(res, 'frameOptions.docName');
|
||||
const method = _.get(res, 'frameOptions.method');
|
||||
const docName = _.get(req, 'frameOptions.docName');
|
||||
const method = _.get(req, 'frameOptions.method');
|
||||
|
||||
if (docName && method) {
|
||||
let action;
|
||||
|
|
|
@ -1,10 +1,77 @@
|
|||
// Switch these lines once there are useful utils
|
||||
// const testUtils = require('./utils');
|
||||
require('./utils');
|
||||
const {InternalServerError} = require('@tryghost/errors');
|
||||
const {prepareError, handleJSONResponse, handleJSONResponseV2, handleHTMLResponse} = require('../lib/mw-error-handler');
|
||||
|
||||
describe('Hello world', function () {
|
||||
it('Runs a test', function () {
|
||||
// TODO: Write me!
|
||||
'hello'.should.eql('hello');
|
||||
describe('Prepare Error', function () {
|
||||
it('Correctly prepares a normal error', function (done) {
|
||||
prepareError(new Error('test!'), {}, {
|
||||
set: () => {}
|
||||
}, (err) => {
|
||||
err.statusCode.should.eql(500);
|
||||
err.name.should.eql('InternalServerError');
|
||||
err.stack.should.startWith('Error: test!');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('Error renderers', function () {
|
||||
it('Renders JSON', function (done) {
|
||||
const errorRenderer = handleJSONResponse({
|
||||
errorHandler: () => {}
|
||||
})[2];
|
||||
|
||||
errorRenderer(new Error('test!'), {}, {
|
||||
json: (data) => {
|
||||
data.errors.length.should.eql(1);
|
||||
data.errors[0].message.should.eql('test!');
|
||||
done();
|
||||
}
|
||||
}, () => {});
|
||||
});
|
||||
|
||||
it('Renders JSON for v2', function (done) {
|
||||
const errorRenderer = handleJSONResponseV2({
|
||||
errorHandler: () => {}
|
||||
})[2];
|
||||
|
||||
errorRenderer(new Error('test!'), {}, {
|
||||
json: (data) => {
|
||||
data.errors.length.should.eql(1);
|
||||
data.errors[0].message.should.eql('test!');
|
||||
done();
|
||||
}
|
||||
}, () => {});
|
||||
});
|
||||
|
||||
it('Uses templates when required', function (done) {
|
||||
const errorRenderer = handleJSONResponseV2({
|
||||
errorHandler: () => {}
|
||||
})[2];
|
||||
|
||||
errorRenderer(new InternalServerError({
|
||||
message: 'test!'
|
||||
}), {
|
||||
frameOptions: {
|
||||
docName: 'blog',
|
||||
method: 'browse'
|
||||
}
|
||||
}, {
|
||||
json: (data) => {
|
||||
data.errors.length.should.eql(1);
|
||||
data.errors[0].message.should.eql('Internal server error, cannot list blog.');
|
||||
done();
|
||||
}
|
||||
}, () => {});
|
||||
});
|
||||
|
||||
it('Exports the HTML renderer', function () {
|
||||
const renderer = handleHTMLResponse({
|
||||
errorHandler: () => {}
|
||||
});
|
||||
|
||||
renderer.length.should.eql(2);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Reference in a new issue