Testing Socket.IO applications
Now let's look at how we can test our chat module. To talk to it from our tests we'll need a Socket.IO client. The Socket.IO project provides another package for this:
> npm install socket.io-client --save-dev
The infrastructure for our tests consists of setting up a server and multiple clients as given here test/realtime/chat.js
:
'use strict'; describe('chat', function() { const expect = require('chai').expect; let server, io, url, createUser, createdClients = []; beforeEach(done => { server = require('http').createServer(); server.listen((err) => { if (err) { done(err); } else { const addr = server.address(); url = 'http://localhost:' + addr.port + '/chat'; io = require('socket.io')(server); require('../../src/realtime/chat.js')(io); done(); } }); ...