Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
test: add tests for Socket.setNoDelay
  • Loading branch information
James Herrington committed Nov 8, 2018
commit 50b64c7066294cdf802ce0c671ddc4582a8e5527
43 changes: 43 additions & 0 deletions test/parallel/test-net-socket-setnodelay.js
Original file line number Diff line number Diff line change
@@ -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);