mirror of
https://github.com/oven-sh/bun
synced 2026-02-13 04:18:58 +00:00
node: fix test-http-client-reject-unexpected-agent.js (#19376)
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
'use strict';
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
const http = require('http');
|
||||
|
||||
const baseOptions = {
|
||||
method: 'GET',
|
||||
port: undefined,
|
||||
host: common.localhostIPv4,
|
||||
};
|
||||
|
||||
const failingAgentOptions = [
|
||||
true,
|
||||
'agent',
|
||||
{},
|
||||
1,
|
||||
() => null,
|
||||
Symbol(),
|
||||
];
|
||||
|
||||
const acceptableAgentOptions = [
|
||||
false,
|
||||
undefined,
|
||||
null,
|
||||
new http.Agent(),
|
||||
];
|
||||
|
||||
const server = http.createServer((req, res) => {
|
||||
res.end('hello');
|
||||
});
|
||||
|
||||
let numberOfResponses = 0;
|
||||
|
||||
function createRequest(agent) {
|
||||
const options = Object.assign(baseOptions, { agent });
|
||||
const request = http.request(options);
|
||||
request.end();
|
||||
request.on('response', common.mustCall(() => {
|
||||
numberOfResponses++;
|
||||
if (numberOfResponses === acceptableAgentOptions.length) {
|
||||
server.close();
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
server.listen(0, baseOptions.host, common.mustCall(function() {
|
||||
baseOptions.port = this.address().port;
|
||||
|
||||
failingAgentOptions.forEach((agent) => {
|
||||
assert.throws(
|
||||
() => createRequest(agent),
|
||||
{
|
||||
code: 'ERR_INVALID_ARG_TYPE',
|
||||
name: 'TypeError',
|
||||
message: 'The "options.agent" property must be of type Agent-like Object, undefined, or false.' +
|
||||
common.invalidArgTypeHelper(agent)
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
acceptableAgentOptions.forEach((agent) => {
|
||||
createRequest(agent);
|
||||
});
|
||||
}));
|
||||
|
||||
process.on('exit', () => {
|
||||
assert.strictEqual(numberOfResponses, acceptableAgentOptions.length);
|
||||
});
|
||||
Reference in New Issue
Block a user