siesta-lite
Version:
Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers
80 lines (79 loc) • 3.56 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var Common_js_1 = require("../../../generic/util/Common.js");
var ChannelEndPoint_js_1 = require("../../../generic/channel/ChannelEndPoint.js");
var BrowserLogger_js_1 = require("../../util/role/BrowserLogger.js");
var ParseJsonSafely_js_1 = require("../../../generic/util/helper/ParseJsonSafely.js");
var ChildEndPoint = /** @class */ (function (_super) {
__extends(ChildEndPoint, _super);
function ChildEndPoint() {
return _super !== null && _super.apply(this, arguments) || this;
}
ChildEndPoint.prototype.doConnect = function (channel) {
var _this = this;
return new Promise(function (resolve, reject) {
var socket;
// wrapping WebSocket instantiation in try/catch in attempt to hide the connection exception
// (if server is not running for example)
// does not work unfortunately (seems by current browsers design)
try {
socket = _this.socket = new WebSocket('ws://' + _this.host + ':' + _this.port);
}
catch (e) {
reject("Connection error");
return;
}
socket.addEventListener('open', function (event) {
socket.removeEventListener('close', connectionErrorRejection);
socket.addEventListener('close', function (event) {
_this.onSocketClose(event);
_this.disconnect();
});
socket.addEventListener('message', function (event) { return _this.onRawChannelMessage(event); });
_this.onSocketOpen(event);
resolve();
});
var connectionErrorRejection = function (event) { return reject("Connection error"); };
socket.addEventListener('close', connectionErrorRejection);
});
};
ChildEndPoint.prototype.doDisconnect = function () {
var socket = this.socket;
if (socket && socket.readyState != socket.CLOSED) {
socket.close();
this.socket = null;
}
};
ChildEndPoint.prototype.onSocketOpen = function (event) {
};
ChildEndPoint.prototype.onSocketClose = function (event) {
};
ChildEndPoint.prototype.sendMessage = function (message) {
this.info("Sending message: " + message);
this.socket.send(message);
};
ChildEndPoint.prototype.messageToEnvelop = function (message) {
var envelop = ParseJsonSafely_js_1.parseJsonSafely(message.data);
if (envelop && envelop.id == null)
return undefined;
return envelop;
};
ChildEndPoint.prototype.envelopToMessage = function (envelop) {
return JSON.stringify(envelop);
};
return ChildEndPoint;
}(ChannelEndPoint_js_1.ChannelEndPoint(BrowserLogger_js_1.BrowserLogger(Common_js_1.Base))));
exports.ChildEndPoint = ChildEndPoint;
;