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...