| 'use strict'; |
| |
| const common = require('../common'); |
| const assert = require('assert'); |
| const http = require('http'); |
| |
| // Ensure agentKeepAliveTimeoutBuffer option sets the correct value or falls back to default. |
| { |
| const agent1 = new http.Agent({ agentKeepAliveTimeoutBuffer: 1500, keepAlive: true }); |
| assert.strictEqual(agent1.agentKeepAliveTimeoutBuffer, 1500); |
| |
| const agent2 = new http.Agent({ agentKeepAliveTimeoutBuffer: -100, keepAlive: true }); |
| assert.strictEqual(agent2.agentKeepAliveTimeoutBuffer, 1000); |
| |
| const agent3 = new http.Agent({ agentKeepAliveTimeoutBuffer: Infinity, keepAlive: true }); |
| assert.strictEqual(agent3.agentKeepAliveTimeoutBuffer, 1000); |
| |
| const agent4 = new http.Agent({ keepAlive: true }); |
| assert.strictEqual(agent4.agentKeepAliveTimeoutBuffer, 1000); |
| } |
| |
| // Integration test with server sending Keep-Alive timeout header. |
| { |
| const SERVER_TIMEOUT = 3; |
| const BUFFER = 1500; |
| |
| const server = http.createServer((req, res) => { |
| res.setHeader('Keep-Alive', `timeout=${SERVER_TIMEOUT}`); |
| res.end('ok'); |
| }); |
| |
| server.listen(0, common.mustCall(() => { |
| const agent = new http.Agent({ agentKeepAliveTimeoutBuffer: BUFFER, keepAlive: true }); |
| assert.strictEqual(agent.agentKeepAliveTimeoutBuffer, BUFFER); |
| |
| http.get({ port: server.address().port, agent }, (res) => { |
| res.resume(); |
| res.on('end', () => { |
| agent.destroy(); |
| server.close(); |
| }); |
| }); |
| })); |
| } |