UNPKG

xts-tcpclient

Version:

Extensible Test Suite extension for controling over TCP/IP

56 lines (46 loc) 1.33 kB
'use strict'; const net = require('net'); const xts = require('extensible-test-suite'); const SendTcpPacket = require('./TestSteps/SendTcpPacket'); const ExpectTcpPacket = require('./TestSteps/ExpectTcpPacket'); class XtsTcpClient extends xts.TestSuiteExtension { constructor(ts, opts) { super(ts, opts); this.display_name = 'Xts TCP Client'; this.full_name = 'xts.TcpClient'; this.client = new net.Socket(); this.client.on('data', this.receive); this.client.XtsTcpClient = this; this._opts.steps.push(SendTcpPacket); this._opts.steps.push(ExpectTcpPacket); } onStart() { const me = this; return new Promise((resolve, reject) => { me.client.connect(me._opts.port, me._opts.host, () =>{ resolve(); }); }); } send(data) { const me = this; return new Promise((resolve, reject) => { me.client.write(data, resolve); }); } receive(data) { let step = this.XtsTcpClient._ts.getCurrentStep(); if (step.XtsTcpClient !== undefined && typeof step.XtsTcpClient.onReceive === 'function') { step.XtsTcpClient.onReceive(data); } } onFinish() { const me = this; return new Promise((resolve, reject) => { me.client.destroy(); resolve(); }); } } module.exports = XtsTcpClient;