diff --git a/lib/plugins/accept.js b/lib/plugins/accept.js index 28217a87b..a8ed748f3 100644 --- a/lib/plugins/accept.js +++ b/lib/plugins/accept.js @@ -48,12 +48,9 @@ function acceptParser(accepts) { function parseAccept(req, res, next) { if (req.accepts(acceptable)) { - next(); - return; + return next(); } - - res.json(e); - next(false); + return next(e); } return parseAccept; diff --git a/test/plugins/accept.test.js b/test/plugins/accept.test.js index 608acaf90..78add29b3 100644 --- a/test/plugins/accept.test.js +++ b/test/plugins/accept.test.js @@ -68,4 +68,27 @@ describe('accept parser', function() { done(); }); }); + + it('GH-1619: should fire NotAcceptable event on server', function(done) { + var opts = { + path: '/', + headers: { + accept: 'foo/bar' + } + }; + var evtFired = false; + + SERVER.on('NotAcceptable', function(req, res, err, cb) { + evtFired = true; + return cb(); + }); + + CLIENT.get(opts, function(err, _, res) { + assert.ok(err); + assert.equal(err.name, 'NotAcceptableError'); + assert.equal(res.statusCode, 406); + assert.isTrue(evtFired); + return done(); + }); + }); });