node/test/parallel/test-http-client-set-timeout-after-end.js
Tim De Pauw 1b11824f51 http: make ClientRequest#setTimeout() noop at end
Originally discovered and resolved by @szmarczak.

PR-URL: https://github.com/nodejs/node/pull/25536
Fixes: https://github.com/nodejs/node/issues/25499
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2019-01-22 05:25:47 +01:00

34 lines
737 B
JavaScript

'use strict';
// Test https://github.com/nodejs/node/issues/25499 fix.
const { mustCall } = require('../common');
const { Agent, createServer, get } = require('http');
const { strictEqual } = require('assert');
const server = createServer(mustCall((req, res) => {
res.end();
}));
server.listen(0, () => {
const agent = new Agent({ keepAlive: true, maxSockets: 1 });
const port = server.address().port;
let socket;
const req = get({ agent, port }, (res) => {
res.on('end', () => {
strictEqual(req.setTimeout(0), req);
strictEqual(socket.listenerCount('timeout'), 0);
agent.destroy();
server.close();
});
res.resume();
});
req.on('socket', (sock) => {
socket = sock;
});
});