fix test-http-agent-getname.js (#19609)

This commit is contained in:
Dylan Conway
2025-05-12 13:44:10 -07:00
committed by GitHub
parent 26579c3ba5
commit a2ae0d06b3
2 changed files with 69 additions and 5 deletions

View File

@@ -96,14 +96,23 @@ Agent.prototype.createConnection = function () {
};
Agent.prototype.getName = function (options = kEmptyObject) {
let name = `http:${options.host || "localhost"}:`;
if (options.port) name += options.port;
let name = options.host || "localhost";
name += ":";
if (options.localAddress) name += options.localAddress;
if (options.port) {
name += options.port;
}
name += ":";
if (options.localAddress) {
name += options.localAddress;
}
// Pacify parallel/test-http-agent-getname by only appending
// the ':' when options.family is set.
if (options.family === 4 || options.family === 6) name += `:${options.family}`;
if (options.socketPath) name += `:${options.socketPath}`;
if (options.family === 4 || options.family === 6) {
name += `:${options.family}`;
}
if (options.socketPath) {
name += `:${options.socketPath}`;
}
return name;
};

View File

@@ -0,0 +1,55 @@
'use strict';
require('../common');
const assert = require('assert');
const http = require('http');
const tmpdir = require('../common/tmpdir');
const agent = new http.Agent();
// Default to localhost
assert.strictEqual(
agent.getName({
port: 80,
localAddress: '192.168.1.1'
}),
'localhost:80:192.168.1.1'
);
// empty argument
assert.strictEqual(
agent.getName(),
'localhost::'
);
// empty options
assert.strictEqual(
agent.getName({}),
'localhost::'
);
// pass all arguments
assert.strictEqual(
agent.getName({
host: '0.0.0.0',
port: 80,
localAddress: '192.168.1.1'
}),
'0.0.0.0:80:192.168.1.1'
);
// unix socket
const socketPath = tmpdir.resolve('foo', 'bar');
assert.strictEqual(
agent.getName({
socketPath
}),
`localhost:::${socketPath}`
);
for (const family of [0, null, undefined, 'bogus'])
assert.strictEqual(agent.getName({ family }), 'localhost::');
for (const family of [4, 6])
assert.strictEqual(agent.getName({ family }), `localhost:::${family}`);