xts-tcpclient
Version:
Extensible Test Suite extension for controling over TCP/IP
48 lines (44 loc) • 1.2 kB
JavaScript
;
const xts = require('extensible-test-suite');
const sleep = require('sleep-promise');
const TextDecoder = require('text-encoding').TextDecoder;
class ExpectTcpPacket extends xts.TestStep {
constructor(ts, opts) {
super(ts, opts);
this.display_name = 'ExpectTcpPacket';
this.full_name = 'xts.TcpClient.ExpectTcpPacket';
this.can_have_result = true;
this.finished = false;
let me = this;
this.XtsTcpClient = {
onReceive: function(data) {
let received = new TextDecoder("utf-8").decode(data);
if (!me.finished && received === me._opts.data) {
me.finished = true;
me.resolve({
success: true
});
}
}
}
}
info() {
return 'Expect TCP Packet: ' + this._opts.data + " timeout: " + this._opts.time_out;
}
run() {
let me = this;
return new Promise((resolve, reject) => {
me.resolve = resolve;
sleep(me._opts.time_out).then(()=>{
if (!me.finished) {
me.finished = true;
resolve({
success: false,
msg: "Time out!"
});
}
});
});
}
}
module.exports = ExpectTcpPacket;