From 97f001ab167875c8e8e8418fa55ff14ef76a4064 Mon Sep 17 00:00:00 2001 From: Rich Trott Date: Wed, 11 Jan 2017 23:20:54 -0800 Subject: [PATCH] test,net: add tests for server.connections There were no tests confirming situations where server.connections should return `null`. Add a test for that situation. Expand existing server.connection test slightly to check value. Refactor (mostly spacing) code for server.connections setter. PR-URL: https://github.com/nodejs/node/pull/10762 Reviewed-By: James M Snell --- lib/net.js | 5 +-- .../test-net-server-connections-child-null.js | 44 +++++++++++++++++++ test/parallel/test-net-server-connections.js | 14 ++++-- 3 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 test/parallel/test-net-server-connections-child-null.js diff --git a/lib/net.js b/lib/net.js index ce60d2f3521317..e4f97ab80debd5 100644 --- a/lib/net.js +++ b/lib/net.js @@ -1132,9 +1132,8 @@ function Server(options, connectionListener) { return this._connections; }, 'Server.connections property is deprecated. ' + 'Use Server.getConnections method instead.'), - set: internalUtil.deprecate((val) => { - return (this._connections = val); - }, 'Server.connections property is deprecated.'), + set: internalUtil.deprecate((val) => (this._connections = val), + 'Server.connections property is deprecated.'), configurable: true, enumerable: false }); diff --git a/test/parallel/test-net-server-connections-child-null.js b/test/parallel/test-net-server-connections-child-null.js new file mode 100644 index 00000000000000..a8a1346fec3370 --- /dev/null +++ b/test/parallel/test-net-server-connections-child-null.js @@ -0,0 +1,44 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const fork = require('child_process').fork; +const net = require('net'); + +if (process.argv[2] === 'child') { + + process.on('message', (msg, socket) => { + socket.end('goodbye'); + }); + + process.send('hello'); + +} else { + + const child = fork(process.argv[1], ['child']); + + const runTest = common.mustCall(() => { + + const server = net.createServer(); + + // server.connections should start as 0 + assert.strictEqual(server.connections, 0); + server.on('connection', (socket) => { + child.send({what: 'socket'}, socket); + }); + server.on('close', () => { + child.kill(); + }); + + server.listen(0, common.mustCall(() => { + const connect = net.connect(server.address().port); + + connect.on('close', common.mustCall(() => { + // now server.connections should be null + assert.strictEqual(server.connections, null); + server.close(); + })); + })); + }); + + child.on('message', runTest); +} diff --git a/test/parallel/test-net-server-connections.js b/test/parallel/test-net-server-connections.js index 7ee1df1a544b95..01e535803a8f39 100644 --- a/test/parallel/test-net-server-connections.js +++ b/test/parallel/test-net-server-connections.js @@ -1,12 +1,18 @@ 'use strict'; -require('../common'); +const common = require('../common'); const assert = require('assert'); const net = require('net'); -// test that server.connections property is no longer enumerable now that it -// has been marked as deprecated - const server = new net.Server(); +const expectedWarning = 'Server.connections property is deprecated. ' + + 'Use Server.getConnections method instead.'; + +common.expectWarning('DeprecationWarning', expectedWarning); + +// test that server.connections property is no longer enumerable now that it +// has been marked as deprecated assert.strictEqual(Object.keys(server).indexOf('connections'), -1); + +assert.strictEqual(server.connections, 0);