From 12554e01f5ec3e19c96c0cd7f01296058edb58cf Mon Sep 17 00:00:00 2001 From: James Herrington Date: Wed, 7 Nov 2018 08:57:13 +0000 Subject: [PATCH] test: add tests for Socket.setNoDelay PR-URL: https://github.com/nodejs/node/pull/24250 Reviewed-By: James M Snell Reviewed-By: Luigi Pinca --- test/parallel/test-net-socket-setnodelay.js | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 test/parallel/test-net-socket-setnodelay.js diff --git a/test/parallel/test-net-socket-setnodelay.js b/test/parallel/test-net-socket-setnodelay.js new file mode 100644 index 00000000000000..be5c8ffc8524dc --- /dev/null +++ b/test/parallel/test-net-socket-setnodelay.js @@ -0,0 +1,43 @@ +'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); +}; + +// setNoDelay should default to true +let socket = new net.Socket({ + handle: { + setNoDelay: common.mustCall(genSetNoDelay(true)) + } +}); +socket.setNoDelay(); + +socket = new net.Socket({ + handle: { + setNoDelay: common.mustCall(genSetNoDelay(true), truthyValues.length) + } +}); +truthyValues.forEach((testVal) => socket.setNoDelay(testVal)); + +socket = new net.Socket({ + handle: { + setNoDelay: common.mustCall(genSetNoDelay(false), falseyValues.length) + } +}); +falseyValues.forEach((testVal) => socket.setNoDelay(testVal)); + +// if a handler doesn't have a setNoDelay function it shouldn't be called. +// In the case below, if it is called an exception will be thrown +socket = new net.Socket({ + handle: { + setNoDelay: null + } +}); +const returned = socket.setNoDelay(true); +assert.ok(returned instanceof net.Socket);