UNPKG

mudb

Version:

Real-time database for multiplayer games

87 lines 2.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const work = require("webworkify"); const test = require("tape"); const client_1 = require("../../client"); const socket_1 = require("../../../socket"); function noop() { } function sessionId() { return Math.random().toString(36).substr(2); } function serverWorker() { return work(require('./worker')); } test('workerSocket initial state', (t) => { const socket = new client_1.MuWorkerSocket(sessionId(), serverWorker()); t.equal(socket.state(), socket_1.MuSocketState.INIT, 'should be MuSocketState.INIT'); t.end(); }); test('workerSocket.open() - when INIT', (t) => { t.plan(2); const socket = new client_1.MuWorkerSocket(sessionId(), serverWorker()); socket.open({ ready: () => { t.ok(true, 'should invoke ready handler'); t.equal(socket.state(), socket_1.MuSocketState.OPEN, 'should change state to MuSocketState.OPEN'); }, message: noop, close: noop, }); }); test('workerSocket.open() - when OPEN', (t) => { t.plan(1); const socket = new client_1.MuWorkerSocket(sessionId(), serverWorker()); socket.open({ ready: () => t.throws(() => socket.open({ ready: noop, message: noop, close: noop, })), message: noop, close: noop, }); }); test('workerSocket.open() - when CLOSED', (t) => { t.plan(1); const socket = new client_1.MuWorkerSocket(sessionId(), serverWorker()); socket.open({ ready: () => socket.close(), message: noop, close: () => t.throws(() => socket.open({ ready: noop, message: noop, close: noop, })), }); }); test('workerSocket.close() - when OPEN', (t) => { t.plan(2); const socket = new client_1.MuWorkerSocket(sessionId(), serverWorker()); socket.open({ ready: () => socket.close(), message: noop, close: (error) => { t.equal(error, undefined, 'should invoke close handler without error message'); t.equal(socket.state(), socket_1.MuSocketState.CLOSED, 'should change state to MuSocketState.CLOSED'); }, }); }); test('workerSocket.close() - when INIT', (t) => { const socket = new client_1.MuWorkerSocket(sessionId(), serverWorker()); socket.close(); t.equal(socket.state(), socket_1.MuSocketState.CLOSED, 'should change state to MuSocketState.CLOSED'); t.end(); }); test('workerSocket.close() - when CLOSED', (t) => { const socket = new client_1.MuWorkerSocket(sessionId(), serverWorker()); socket.open({ ready: () => socket.close(), message: noop, close: () => { socket.close(); t.ok(true, 'should not invoke close handler'); t.end(); }, }); }); //# sourceMappingURL=client.js.map