socketcluster-client
Advanced tools
Comparing version 12.0.0 to 13.0.0
{ | ||
"name": "socketcluster-client", | ||
"main": "socketcluster.js", | ||
"version": "12.0.0", | ||
"version": "13.0.0", | ||
"homepage": "https://github.com/SocketCluster/socketcluster-client", | ||
@@ -6,0 +6,0 @@ "description": "SocketCluster JavaScript client", |
16
index.js
@@ -1,6 +0,6 @@ | ||
var SCSocket = require('./lib/scsocket'); | ||
var SCSocketCreator = require('./lib/scsocketcreator'); | ||
var SCClientSocket = require('./lib/scclientsocket'); | ||
var factory = require('./lib/factory'); | ||
module.exports.SCSocketCreator = SCSocketCreator; | ||
module.exports.SCSocket = SCSocket; | ||
module.exports.factory = factory; | ||
module.exports.SCClientSocket = SCClientSocket; | ||
@@ -10,3 +10,3 @@ module.exports.Emitter = require('component-emitter'); | ||
module.exports.create = function (options) { | ||
return SCSocketCreator.create(options); | ||
return factory.create(options); | ||
}; | ||
@@ -17,7 +17,7 @@ | ||
module.exports.destroy = function (socket) { | ||
return SCSocketCreator.destroy(socket); | ||
return factory.destroy(socket); | ||
}; | ||
module.exports.clients = SCSocketCreator.clients; | ||
module.exports.clients = factory.clients; | ||
module.exports.version = '12.0.0'; | ||
module.exports.version = '13.0.0'; |
{ | ||
"name": "socketcluster-client", | ||
"description": "SocketCluster JavaScript client", | ||
"version": "12.0.0", | ||
"version": "13.0.0", | ||
"homepage": "http://socketcluster.io", | ||
@@ -6,0 +6,0 @@ "contributors": [ |
@@ -102,4 +102,2 @@ SocketCluster JavaScript Client | ||
See https://socketcluster.io/#!/docs/api-scsocket-client for details | ||
```js | ||
@@ -106,0 +104,0 @@ socket.on('subscribe', function(channelname) { |
@@ -86,14 +86,16 @@ var assert = require('assert'); | ||
global.localStorage.removeItem('socketCluster.authToken'); | ||
if (client && client.state != client.CLOSED) { | ||
cleanupTasks.push(new Promise(function (resolve, reject) { | ||
client.once('disconnect', function () { | ||
resolve(); | ||
}); | ||
client.once('connectAbort', function () { | ||
resolve(); | ||
}); | ||
})); | ||
client.destroy(); | ||
} else { | ||
client.destroy(); | ||
if (client) { | ||
if (client.state != client.CLOSED) { | ||
cleanupTasks.push(new Promise(function (resolve, reject) { | ||
client.once('disconnect', function () { | ||
resolve(); | ||
}); | ||
client.once('connectAbort', function () { | ||
resolve(); | ||
}); | ||
})); | ||
client.destroy(); | ||
} else { | ||
client.destroy(); | ||
} | ||
} | ||
@@ -109,2 +111,141 @@ cleanupTasks.push(new Promise(function (resolve) { | ||
describe('Creation', function () { | ||
it('Should reuse socket if multiplex is true and options are the same', function (done) { | ||
clientOptions = { | ||
hostname: '127.0.0.1', | ||
port: portNumber, | ||
multiplex: true | ||
}; | ||
var clientA = socketClusterClient.create(clientOptions); | ||
var clientB = socketClusterClient.create(clientOptions); | ||
assert.equal(clientA, clientB); | ||
clientA.destroy(); | ||
clientB.destroy(); | ||
done(); | ||
}); | ||
it('Should automatically connect socket on creation by default', function (done) { | ||
clientOptions = { | ||
hostname: '127.0.0.1', | ||
port: portNumber, | ||
multiplex: false | ||
}; | ||
client = socketClusterClient.create(clientOptions); | ||
assert.equal(client.state, client.CONNECTING); | ||
done(); | ||
}); | ||
it('Should not automatically connect socket if autoConnect is set to false', function (done) { | ||
clientOptions = { | ||
hostname: '127.0.0.1', | ||
port: portNumber, | ||
multiplex: false, | ||
autoConnect: false | ||
}; | ||
client = socketClusterClient.create(clientOptions); | ||
assert.equal(client.state, client.CLOSED); | ||
done(); | ||
}); | ||
it('Should automatically connect socket if multiplex is true, autoConnect is set to false the first time and socket create is called with autoConnect true the second time', function (done) { | ||
var clientOptionsA = { | ||
hostname: '127.0.0.1', | ||
port: portNumber, | ||
multiplex: true, | ||
autoConnect: false | ||
}; | ||
var clientA = socketClusterClient.create(clientOptionsA); | ||
assert.equal(clientA.state, clientA.CLOSED); | ||
var clientOptionsB = { | ||
hostname: '127.0.0.1', | ||
port: portNumber, | ||
multiplex: true, | ||
autoConnect: true | ||
}; | ||
var clientB = socketClusterClient.create(clientOptionsB); | ||
assert.equal(clientB.state, clientB.CONNECTING); | ||
clientA.destroy(); | ||
clientB.destroy(); | ||
done(); | ||
}); | ||
it('Should not automatically connect socket if multiplex is true, autoConnect is set to false and socket create is called a second time with autoConnect false', function (done) { | ||
clientOptions = { | ||
hostname: '127.0.0.1', | ||
port: portNumber, | ||
multiplex: true, | ||
autoConnect: false | ||
}; | ||
var clientA = socketClusterClient.create(clientOptions); | ||
assert.equal(clientA.state, clientA.CLOSED); | ||
var clientB = socketClusterClient.create(clientOptions); | ||
assert.equal(clientB.state, clientB.CLOSED); | ||
clientA.destroy(); | ||
clientB.destroy(); | ||
done(); | ||
}); | ||
}); | ||
describe('Errors', function () { | ||
it('Should not be able to emit reserved events on the socket', function (done) { | ||
client = socketClusterClient.create(clientOptions); | ||
var error = null; | ||
client.on('error', function (err) { | ||
error = err; | ||
}); | ||
client.on('connect', function () { | ||
client.emit('message', 123); | ||
}); | ||
setTimeout(function () { | ||
assert.notEqual(error, null); | ||
assert.equal(error.name, 'InvalidActionError'); | ||
done(); | ||
}, 100); | ||
}); | ||
it('Should be able to emit the error event locally on the socket', function (done) { | ||
client = socketClusterClient.create(clientOptions); | ||
var error = null; | ||
client.on('error', function (err) { | ||
error = err; | ||
}); | ||
client.on('connect', function () { | ||
var error = new Error('Custom error'); | ||
error.name = 'CustomError'; | ||
client.emit('error', error); | ||
}); | ||
setTimeout(function () { | ||
assert.notEqual(error, null); | ||
assert.equal(error.name, 'CustomError'); | ||
done(); | ||
}, 100); | ||
}); | ||
}); | ||
describe('Authentication', function () { | ||
@@ -111,0 +252,0 @@ |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
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
336303
7813
175