UNPKG

xts-tcpclient

Version:

Extensible Test Suite extension for controling over TCP/IP

48 lines (44 loc) 1.2 kB
'use strict'; 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;