UNPKG

muweb-socket

Version:

WebSocket communication for mudb

97 lines 2.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var ip = require("ip"); var test = require("tape"); var socket_1 = require("mudb/socket"); var socket_2 = require("../socket"); function noop() { } function id() { return Math.random().toString(36).substr(2); } var url = "ws://" + ip.address() + ":" + process.env.PORT; if (typeof process === 'object' && 'exit' in process) { test.onFinish(function () { return process.exit(0); }); } test('socket initial state', function (t) { var socket = new socket_2.MuWebSocket({ sessionId: id(), url: url, }); t.equals(socket.state, socket_1.MuSocketState.INIT, 'should be INIT'); t.end(); }); test('socket.open() - when INIT', function (t) { t.plan(1); var callsToReady = 0; var socket = new socket_2.MuWebSocket({ sessionId: id(), url: url, }); socket.open({ ready: function () { ++callsToReady; if (callsToReady > 1) { t.fail('should not call ready handler more than once'); } t.equals(socket.state, socket_1.MuSocketState.OPEN, 'should change socket state to OPEN'); }, message: noop, close: noop, }); }); test('socket.open() - when OPEN', function (t) { t.plan(1); var socket = new socket_2.MuWebSocket({ sessionId: id(), url: url, }); socket.open({ ready: function () { t.throws(function () { return socket.open({ ready: noop, message: noop, close: noop, }); }); }, message: noop, close: noop, }); }); test('socket.open() - when CLOSED', function (t) { t.plan(1); var socket = new socket_2.MuWebSocket({ sessionId: id(), url: url, }); socket.open({ ready: function () { return socket.close(); }, message: noop, close: function () { return t.throws(function () { return socket.open({ ready: noop, message: noop, close: noop, }); }); }, }); }); test('socket.close() - when OPEN', function (t) { t.plan(1); var socket = new socket_2.MuWebSocket({ sessionId: id(), url: url, }); socket.open({ ready: function () { return socket.close(); }, message: noop, close: function () { return t.equals(socket.state, socket_1.MuSocketState.CLOSED, 'should change socket state to CLOSED'); }, }); }); test('socket.close() - when INIT', function (t) { var socket = new socket_2.MuWebSocket({ sessionId: id(), url: url, }); socket.close(); t.equals(socket.state, socket_1.MuSocketState.CLOSED, 'should change socket state to CLOSED'); t.end(); }); //# sourceMappingURL=socket.js.map