muweb-socket
Version:
WebSocket communication for mudb
97 lines • 2.85 kB
JavaScript
;
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