Comparing version 0.9.3 to 0.9.4
@@ -0,1 +1,5 @@ | ||
0.9.4 - 2014-12-22 | ||
- Handle socket errors occurring before connection is established | ||
0.9.3 - 2014-12-20 | ||
@@ -2,0 +6,0 @@ |
@@ -43,2 +43,4 @@ "use strict"; | ||
// internal stuff to track callbacks | ||
self._isConnecting = false; | ||
self._isReconnecting = false; | ||
self._nextId = 0; | ||
@@ -69,2 +71,7 @@ self._callbacks = {}; | ||
self.socket.on("error", function(error) { | ||
// error received before connection was established | ||
if (self._isConnecting) { | ||
self.emit("failed", error.message); | ||
} | ||
self.emit("socket-error", error); | ||
@@ -288,2 +295,3 @@ }); | ||
var self = this; | ||
self._isConnecting = true; | ||
self._connectionFailed = false; | ||
@@ -297,5 +305,7 @@ self._isClosing = false; | ||
connected(undefined, self._isReconnecting); | ||
self._isConnecting = false; | ||
self._isReconnecting = false; | ||
}); | ||
self.addListener("failed", function(error) { | ||
self._isConnecting = false; | ||
self._connectionFailed = true; | ||
@@ -302,0 +312,0 @@ connected(error, self._isReconnecting); |
{ | ||
"name": "ddp", | ||
"version": "0.9.3", | ||
"version": "0.9.4", | ||
"description": "Node.js module to connect to servers using DDP protocol.", | ||
@@ -5,0 +5,0 @@ "author": "Tom Coleman <tom@thesnail.org> (http://tom.thesnail.org)", |
@@ -50,2 +50,45 @@ var assert = require('assert'), | ||
}); | ||
it('should clear event listeners on close', function(done) { | ||
var ddpclient = new DDPClient(); | ||
var callback = sinon.stub(); | ||
ddpclient.connect(callback); | ||
ddpclient.close(); | ||
ddpclient.connect(callback); | ||
setTimeout(function() { | ||
assert.equal(ddpclient.listeners('connected').length, 1); | ||
assert.equal(ddpclient.listeners('failed').length, 1); | ||
done(); | ||
}, 15); | ||
}); | ||
it('should call the connection callback when connection is established', function(done) { | ||
var ddpclient = new DDPClient(); | ||
var callback = sinon.spy(); | ||
ddpclient.connect(callback); | ||
wsMock.emit('message', { data: '{ "msg": "connected" }' }); | ||
setTimeout(function() { | ||
assert(callback.calledWith(undefined, false)); | ||
done(); | ||
}, 15); | ||
}); | ||
it('should pass socket errors occurring during connection to the connection callback', function(done) { | ||
var ddpclient = new DDPClient(); | ||
var callback = sinon.spy(); | ||
var socketError = "Network error: ws://localhost:3000/websocket: connect ECONNREFUSED"; | ||
ddpclient.connect(callback); | ||
wsMock.emit('error', { message: socketError }); | ||
setTimeout(function() { | ||
assert(callback.calledWith(socketError, false)); | ||
done(); | ||
}, 15); | ||
}); | ||
}); | ||
@@ -95,17 +138,2 @@ | ||
}); | ||
it('should clear event listeners on close', function(done) { | ||
var ddpclient = new DDPClient(); | ||
var callback = sinon.stub(); | ||
ddpclient.connect(callback); | ||
ddpclient.close(); | ||
ddpclient.connect(callback); | ||
setTimeout(function() { | ||
assert.equal(ddpclient.listeners('connected').length, 1); | ||
assert.equal(ddpclient.listeners('failed').length, 1); | ||
done(); | ||
}, 15); | ||
}) | ||
}); | ||
@@ -112,0 +140,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
36493
673