Compare commits

...

2 Commits

Author SHA1 Message Date
Jarred-Sumner
cfec581a28 Sync Node.js tests with upstream 2025-05-30 00:24:17 +00:00
Jarred Sumner
ac89f1ce1a fix http globalAgent override 2025-05-29 17:23:06 -07:00
3 changed files with 55 additions and 4 deletions

View File

@@ -82,6 +82,9 @@ ObjectDefineProperty(AgentClass, "globalAgent", {
get: function () {
return globalAgent;
},
set: function (value) {
globalAgent = value;
},
});
ObjectDefineProperty(AgentClass, "defaultMaxSockets", {
@@ -144,10 +147,20 @@ Agent.prototype.destroy = function () {
var globalAgent = new Agent();
const http_agent_exports = {
const http_agent_exports: any = {
Agent: AgentClass,
globalAgent,
NODE_HTTP_WARNING,
};
ObjectDefineProperty(http_agent_exports, "globalAgent", {
enumerable: true,
configurable: true,
get() {
return globalAgent;
},
set(value) {
globalAgent = value;
},
});
export default http_agent_exports;

View File

@@ -1,5 +1,5 @@
const { validateInteger } = require("internal/validators");
const { Agent, globalAgent, NODE_HTTP_WARNING } = require("node:_http_agent");
const { Agent, NODE_HTTP_WARNING } = require("node:_http_agent");
const { ClientRequest } = require("node:_http_client");
const { validateHeaderName, validateHeaderValue } = require("node:_http_common");
const { IncomingMessage } = require("node:_http_incoming");
@@ -60,7 +60,6 @@ const http_exports = {
validateInteger(max, "max", 1);
$debug(`${NODE_HTTP_WARNING}\n`, "setMaxIdleHTTPParsers() is a no-op");
},
globalAgent,
ClientRequest,
OutgoingMessage,
WebSocket,
@@ -68,4 +67,15 @@ const http_exports = {
MessageEvent,
};
Object.defineProperty(http_exports, "globalAgent", {
enumerable: true,
configurable: true,
get() {
return Agent.globalAgent;
},
set(value) {
Agent.globalAgent = value;
},
});
export default http_exports;

View File

@@ -0,0 +1,28 @@
'use strict';
const common = require('../common');
const assert = require('assert');
const http = require('http');
const server = http.Server(common.mustCall((req, res) => {
res.writeHead(200);
res.end('Hello, World!');
}));
server.listen(0, common.mustCall(() => {
const agent = new http.Agent();
const name = agent.getName({ port: server.address().port });
http.globalAgent = agent;
makeRequest();
assert(name in agent.sockets); // Agent has indeed been used
}));
function makeRequest() {
const req = http.get({
port: server.address().port
});
req.on('close', () => {
assert.strictEqual(req.destroyed, true);
server.close();
});
}