'use strict'; const common = require('../common'); const assert = require('assert'); const net = require('net'); const truthyValues = [true, 1, 'true', {}, []]; const falseyValues = [false, 0, '']; const genSetNoDelay = (desiredArg) => (enable) => { assert.strictEqual(enable, desiredArg); }; for (const value of truthyValues) { const server = net.createServer(); server.listen(0, common.mustCall(function() { const port = server.address().port; const client = net.connect( { port, noDelay: value }, common.mustCall(() => client.end()) ); client._handle.setNoDelay = common.mustCall(genSetNoDelay(true)); client.on('end', common.mustCall(function() { server.close(); })); })); } for (const value of falseyValues) { const server = net.createServer(); server.listen(0, common.mustCall(function() { const port = server.address().port; const client = net.connect( { port, noDelay: value }, common.mustCall(() => client.end()) ); client._handle.setNoDelay = common.mustNotCall(); client.on('end', common.mustCall(function() { server.close(); })); })); }