From e6c516465e371c8a7689137aca0ebdcb0e58e4cb Mon Sep 17 00:00:00 2001 From: Alistair Smith Date: Thu, 24 Apr 2025 22:03:23 -0700 Subject: [PATCH] Implement test-http2-client-port-80.js (#19267) --- src/js/node/http2.ts | 4 +-- .../parallel/test-http2-client-port-80.js | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 test/js/node/test/parallel/test-http2-client-port-80.js diff --git a/src/js/node/http2.ts b/src/js/node/http2.ts index be00a226e1..18e01137b2 100644 --- a/src/js/node/http2.ts +++ b/src/js/node/http2.ts @@ -3230,13 +3230,13 @@ class ClientHttp2Session extends Http2Session { options ? { host: url.hostname, - port, + port: String(port), ALPNProtocols: ["h2"], ...options, } : { host: url.hostname, - port, + port: String(port), ALPNProtocols: ["h2"], }, onConnect.bind(this), diff --git a/test/js/node/test/parallel/test-http2-client-port-80.js b/test/js/node/test/parallel/test-http2-client-port-80.js new file mode 100644 index 0000000000..016abc69e3 --- /dev/null +++ b/test/js/node/test/parallel/test-http2-client-port-80.js @@ -0,0 +1,25 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const assert = require('assert'); +const http2 = require('http2'); +const net = require('net'); + +// Verifies that port 80 gets set as expected + +const connect = net.connect; +net.connect = common.mustCall((...args) => { + assert.strictEqual(args[0].port, '80'); + return connect(...args); +}); + +const client = http2.connect('http://localhost:80'); + +// A socket error may or may not occur depending on whether there is something +// currently listening on port 80. Keep this as a non-op and not a mustCall or +// mustNotCall. +client.on('error', () => {}); + +client.close(); \ No newline at end of file