Skip to content

Commit d177d40

Browse files
committed
test: add request timeout bigger than agent timeout cases
1 parent 0de1968 commit d177d40

File tree

2 files changed

+63
-1
lines changed

2 files changed

+63
-1
lines changed

test/agent.test.js

+31
Original file line numberDiff line numberDiff line change
@@ -1495,6 +1495,37 @@ describe('test/agent.test.js', () => {
14951495
assert(Object.keys(agentkeepalive.sockets).length === 1);
14961496
});
14971497

1498+
describe('request timeout > agent timeout', () => {
1499+
it('should use request timeout', done => {
1500+
const agent = new Agent({
1501+
keepAlive: true,
1502+
timeout: 1000,
1503+
});
1504+
const req = http.get({
1505+
agent,
1506+
port,
1507+
path: '/?timeout=20000',
1508+
timeout: 1500,
1509+
}, res => {
1510+
console.error(res.statusCode, res.headers);
1511+
assert.fail('should not get res here');
1512+
});
1513+
1514+
let isTimeout = false;
1515+
req.on('timeout', () => {
1516+
isTimeout = true;
1517+
req.abort();
1518+
});
1519+
req.on('error', err => {
1520+
assert(isTimeout);
1521+
assert(err);
1522+
assert(err.message === 'socket hang up');
1523+
assert(err.code === 'ECONNRESET');
1524+
done();
1525+
});
1526+
});
1527+
});
1528+
14981529
describe('keepAlive = false', () => {
14991530
it('should close socket after request', done => {
15001531
const name = 'localhost:' + port + ':';

test/https_agent.test.js

+32-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ const urlparse = require('url').parse;
55
const fs = require('fs');
66
const assert = require('assert');
77
const HttpsAgent = require('..').HttpsAgent;
8-
// const HttpsAgent = https.Agent;
98

109
describe('test/https_agent.test.js', () => {
1110
let app = null;
@@ -219,4 +218,36 @@ describe('test/https_agent.test.js', () => {
219218
});
220219
});
221220
});
221+
222+
describe('request timeout > agent timeout', () => {
223+
it('should use request timeout', done => {
224+
const agent = new HttpsAgent({
225+
keepAlive: true,
226+
timeout: 2000,
227+
});
228+
const req = https.get({
229+
agent,
230+
port,
231+
path: '/?timeout=20000',
232+
timeout: 2500,
233+
ca: fs.readFileSync(__dirname + '/fixtures/ca.pem'),
234+
}, res => {
235+
console.error(res.statusCode, res.headers);
236+
assert.fail('should not get res here');
237+
});
238+
239+
let isTimeout = false;
240+
req.on('timeout', () => {
241+
isTimeout = true;
242+
req.abort();
243+
});
244+
req.on('error', err => {
245+
assert(isTimeout);
246+
assert(err);
247+
assert(err.message === 'socket hang up');
248+
assert(err.code === 'ECONNRESET');
249+
done();
250+
});
251+
});
252+
});
222253
});

0 commit comments

Comments
 (0)