diff --git a/lib/http-proxy/passes/ws-incoming.js b/lib/http-proxy/passes/ws-incoming.js index 057c540..a9e8797 100644 --- a/lib/http-proxy/passes/ws-incoming.js +++ b/lib/http-proxy/passes/ws-incoming.js @@ -78,7 +78,7 @@ var passes = exports; * * @api private */ - function stream(req, socket, options, server, head, clb) { + function stream(req, socket, options, head, server, clb) { common.setupSocket(socket); if (head && head.length) socket.unshift(head); diff --git a/test/lib-http-proxy-test.js b/test/lib-http-proxy-test.js index 6b2ce03..d623175 100644 --- a/test/lib-http-proxy-test.js +++ b/test/lib-http-proxy-test.js @@ -261,9 +261,29 @@ describe('lib/http-proxy.js', function() { }); }); }); - }); - describe('#createProxyServer using the ws-incoming passes', function () { + it('should emit error on proxy error', function (done) { + var ports = { source: gen.port, proxy: gen.port }; + var proxy = httpProxy.createProxyServer({ + // note: we don't ever listen on this port + target: 'ws://127.0.0.1:' + ports.source, + ws: true + }), + proxyServer = proxy.listen(ports.proxy), + client = new ws('ws://127.0.0.1:' + ports.proxy); + + client.on('open', function () { + client.send('hello there'); + }); + + proxy.on('error', function (err) { + expect(err).to.be.an(Error); + expect(err.code).to.be('ECONNREFUSED'); + proxyServer._server.close(); + done(); + }); + }); + it('should proxy a socket.io stream', function (done) { var ports = { source: gen.port, proxy: gen.port }; var proxy = httpProxy.createProxyServer({