socket-stress-test
Version:
Enables you to create basic stress tests for sockets
92 lines (81 loc) • 3.18 kB
JavaScript
var should = require('chai').should()
, server = require('./utils/server')
, SocketPromise = require('../lib/stress.test')
, ioUrl = process.env.CLIENT_IO_URL
, sio = server.io
, defaultIoOptions = {
transports: ['websocket']
, forceNew: true
, reconnection: false
}
describe('Lib: stress test', function(){
it('Should send the right information', function(done) {
var socket_promise = new SocketPromise({
ioUrl: ioUrl
, maxConnections: 1
, connectionInterval: 10
, ioOptions: defaultIoOptions
})
socket_promise.addEmit('hello', {
'world': 123
}, 100)
sio.on('connection', function(socket) {
socket.on('hello', function(payload) {
payload.should.have.property('world')
done()
socket.disconnect()
socket_promise.stop()
})
})
socket_promise.run()
})
it('Should fire .new() callback when new socket is getting created', function(done) {
var socket_promise = new SocketPromise({
ioUrl: ioUrl
, maxConnections: 1
, connectionInterval: 10
, ioOptions: defaultIoOptions
})
.new(function(socketTester, numberOfConnections) {
numberOfConnections.should.be.equal(1)
done()
socketTester.socket.disconnect()
socket_promise.stop()
})
socket_promise.run()
})
it('Should fire .disconnect() callback when socket get disconnected', function(done) {
var socket_promise = new SocketPromise({
ioUrl: ioUrl
, maxConnections: 10
, connectionInterval: 10
, ioOptions: defaultIoOptions
})
socket_promise.disconnect(function() {
done()
socket_promise.stop()
})
sio.on('connection', function(socket) {
socket.disconnect()
})
socket_promise.run()
})
it('Should open connections till the max connections is reached', function(done) {
var socket_promise = new SocketPromise({
ioUrl: ioUrl
, maxConnections: 10
, connectionInterval: 10
, ioOptions: defaultIoOptions
})
socket_promise.new(function(socketTester, numberOfConnections) {
if (numberOfConnections == 10) {
done()
}
else if (numberOfConnections > 10) {
done(new Error("Number of conenctions is too high"))
socket_promise.stop()
}
})
socket_promise.run()
})
})