#2919·nock

Nock@14 破坏了 ClientRequest.setTimeout()

作者: TrevorKarjanis创建于 2025年10月15日更新于 2026年7月26日
标签bug

import http from 'http'; import nock from 'nock';

main();

async function main() { let listener;

try { const delay = 1000; const url = 'http://localhost:81'; nock(url).get('/').delay(delay).reply(200);

let failures = 0;
let success = await request(url, delay, true);
if (!success) failures += 1;


nock(url).get('/').delay(delay).reply(200);
success = await request(url, delay, false);
if (!success) failures += 1;

if (failures) console.log('\n' + failures + ' tests failed');
else console.log('\nAll tests passed');

} finally { listener?.close(); } }

async function request(url, delay, option = true) { return new Promise(resolve => { const ms = delay / 2; const timeout = option ? ms : undefined; const request = http.request(url, { timeout }, response => { console.log(Response received with status code ${response.statusCode}); console.log('Request failed to timeout'); });

if (timeout) {
  console.log('Testing timeout set with http.request option');
} else {
  console.log('\nTesting timeout with