diff --git a/lib/application.js b/lib/application.js index 9c70938..7891ab5 100644 --- a/lib/application.js +++ b/lib/application.js @@ -131,6 +131,7 @@ app.callback = function(){ if (1 == ctx.socket.listeners('error').length) { ctx.socket.on('error', function(err){ + console.log('callback'); self.emit('error', err); }); } diff --git a/test/application.js b/test/application.js index be5ebba..47627fd 100644 --- a/test/application.js +++ b/test/application.js @@ -204,6 +204,27 @@ describe('app.respond', function(){ }) }) + describe('when a socket error occurs', function(){ + it('should emit "error" on the app', function(done){ + var app = koa(); + + app.use(function(next){ + return function *(){ + this.socket.emit('error', new Error('tobi escaped')); + } + }); + + app.on('error', function(err){ + err.message.should.equal('tobi escaped'); + done(); + }); + + request(app.listen()) + .get('/') + .end(function(){}); + }) + }) + describe('when an error occurs', function(){ it('should emit "error" on the app', function(done){ var app = koa();