From 91b16deebf5c6ab2d8ae2dbfa4d4c617fc85e26c Mon Sep 17 00:00:00 2001 From: Ashcon Partovi Date: Wed, 19 Mar 2025 15:41:01 -0700 Subject: [PATCH] fix: test-http-request-dont-override-options.js --- ...test-http-request-dont-override-options.js | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 test/js/node/test/parallel/test-http-request-dont-override-options.js diff --git a/test/js/node/test/parallel/test-http-request-dont-override-options.js b/test/js/node/test/parallel/test-http-request-dont-override-options.js new file mode 100644 index 0000000000..19b847dc03 --- /dev/null +++ b/test/js/node/test/parallel/test-http-request-dont-override-options.js @@ -0,0 +1,40 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const http = require('http'); + + +const server = http.createServer(common.mustCall(function(req, res) { + res.writeHead(200); + res.end('ok'); +})); + +server.listen(0, function() { + const agent = new http.Agent(); + agent.defaultPort = this.address().port; + + // Options marked as explicitly undefined for readability + // in this test, they should STAY undefined as options should not + // be mutable / modified + const options = { + host: undefined, + hostname: common.localhostIPv4, + port: undefined, + defaultPort: undefined, + path: undefined, + method: undefined, + agent: agent + }; + + http.request(options, function(res) { + res.resume(); + server.close(); + assert.strictEqual(options.host, undefined); + assert.strictEqual(options.hostname, common.localhostIPv4); + assert.strictEqual(options.port, undefined); + assert.strictEqual(options.defaultPort, undefined); + assert.strictEqual(options.path, undefined); + assert.strictEqual(options.method, undefined); + }).end(); +});