diff --git a/lib/manager.js b/lib/manager.js index 3a745f02..81b9362f 100644 --- a/lib/manager.js +++ b/lib/manager.js @@ -419,7 +419,7 @@ Manager.prototype.reconnect = function(){ this.reconnecting = true; var timer = setTimeout(function(){ debug('attempting reconnect'); - self.emitAll('reconnect_attempt'); + self.emitAll('reconnect_attempt', self.attempts); self.emitAll('reconnecting', self.attempts); self.open(function(err){ if (err) { diff --git a/test/connection.js b/test/connection.js index 94fb2763..abaea6a9 100644 --- a/test/connection.js +++ b/test/connection.js @@ -130,8 +130,9 @@ describe('connection', function() { var socket = manager.socket('/timeout_socket'); var reconnects = 0; - var reconnectCb = function() { + var reconnectCb = function(attempts) { reconnects++; + expect(attempts).to.be(reconnects); }; socket.on('reconnect_attempt', reconnectCb); @@ -142,6 +143,20 @@ describe('connection', function() { }); }); + it('should fire error on socket', function(done) { + var manager = io.Manager({ reconnection: true }); + var socket = manager.socket('/timeout_socket'); + + socket.on('error', function(reason) { + expect(reason).to.eql({ code: 'test' }); + done(); + }); + + socket.on('connect', function() { + manager.engine.onPacket({ type: 'error', data: 'test' }); + }); + }); + it('should fire reconnecting (on socket) with attempts number when reconnecting twice', function(done) { var manager = io.Manager({ reconnection: true, timeout: 0, reconnectionAttempts: 2, reconnectionDelay: 10 }); var socket = manager.socket('/timeout_socket');