v1.18.x
Barış Soner Uşaklı 8 years ago
parent 53afa552d0
commit b55087dab7

@ -82,7 +82,7 @@ module.exports = function (Plugins) {
var hookList = Plugins.loadedHooks[hook]; var hookList = Plugins.loadedHooks[hook];
var hookType = hook.split(':')[0]; var hookType = hook.split(':')[0];
try {
switch (hookType) { switch (hookType) {
case 'filter': case 'filter':
fireFilterHook(hook, hookList, params, callback); fireFilterHook(hook, hookList, params, callback);
@ -97,6 +97,9 @@ module.exports = function (Plugins) {
winston.warn('[plugins] Unknown hookType: ' + hookType + ', hook : ' + hook); winston.warn('[plugins] Unknown hookType: ' + hookType + ', hook : ' + hook);
break; break;
} }
} catch (err) {
callback(err);
}
}; };
function fireFilterHook(hook, hookList, params, callback) { function fireFilterHook(hook, hookList, params, callback) {

@ -70,6 +70,20 @@ describe('Plugins', function () {
}); });
}); });
it('should not crash if there is an exception in a hook', function (done) {
function filterMethod(data, callback) {
var crash;
crash.a = 5;
callback(null, data);
}
assert(err);
assert.equal(err.message, 'Cannot set property \'a\' of undefined');
done();
});
});
it('should get plugin data from nbbpm', function (done) { it('should get plugin data from nbbpm', function (done) {
plugins.get('nodebb-plugin-markdown', function (err, data) { plugins.get('nodebb-plugin-markdown', function (err, data) {
assert.ifError(err); assert.ifError(err);

Loading…
Cancel
Save