From aba4fcf0fa437769e6de855939810a856b488aad Mon Sep 17 00:00:00 2001 From: Zalmoxisus Date: Mon, 2 Jan 2017 16:12:39 +0200 Subject: [PATCH] [Test] Realtime monitoring --- package.json | 1 + test/socket.spec.js | 70 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/package.json b/package.json index f372d3d..e95841f 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "devDependencies": { "expect": "^1.20.2", "mocha": "^3.2.0", + "socketcluster-client": "^5.1.1", "supertest": "^2.0.1" } } diff --git a/test/socket.spec.js b/test/socket.spec.js index 897a960..fd255a4 100644 --- a/test/socket.spec.js +++ b/test/socket.spec.js @@ -37,4 +37,74 @@ describe('Server', function() { .expect(200, done); }); }); + + describe('Realtime monitoring', function() { + var socket, socket2, channel; + before(function() { + socket = scClient.connect({ hostname: 'localhost', port: 8000 }); + socket.connect(); + socket.on('error', function(error) { + console.error('Socket1 error', error); + }); + socket2 = scClient.connect({ hostname: 'localhost', port: 8000 }); + socket2.connect(); + socket.on('error', function(error) { + console.error('Socket2 error', error); + }); + }); + + after(function() { + socket.disconnect(); + socket2.disconnect(); + }); + + it('should connect', function(done) { + socket.on('connect', function(status) { + expect(status.id).toExist(); + done(); + }); + }); + + it('should login', function() { + socket.emit('login', 'master', function(error, channelName) { + if (error) { console.log(error); return; } + expect(channelName).toBe('respond'); + channel = socket.subscribe(channelName); + expect(channel.SUBSCRIBED).toBe('subscribed'); + }); + }); + + it('should send message', function(done) { + var data = { + "type": "ACTION", + "payload": { + "todos": "do some" + }, + "action": { + "timestamp": 1483349708506, + "action": { + "type": "ADD_TODO", + "text": "hggg" + } + }, + "instanceId": "tAmA7H5fclyWhvizAAAi", + "name": "LoggerInstance", + "id": "tAmA7H5fclyWhvizAAAi" + }; + + socket2.emit('login', '', function(error, channelName) { + if (error) { console.log(error); return; } + expect(channelName).toBe('log'); + var channel2 = socket2.subscribe(channelName); + expect(channel2.SUBSCRIBED).toBe('subscribed'); + channel2.on('subscribe', function() { + channel2.watch(function(message) { + expect(message).toEqual(data); + done(); + }); + socket.emit(channelName, data); + }) + }); + }); + }); });