diff --git a/lib/fetch/index.js b/lib/fetch/index.js index 298b3ddb27c..2c68e97f64f 100644 --- a/lib/fetch/index.js +++ b/lib/fetch/index.js @@ -2002,7 +2002,7 @@ async function httpNetworkFetch ( location = val } - headers.append(key, val) + headers[kHeadersList].append(key, val) } } else { const keys = Object.keys(headersList) @@ -2016,7 +2016,7 @@ async function httpNetworkFetch ( location = val } - headers.append(key, val) + headers[kHeadersList].append(key, val) } } @@ -2120,7 +2120,7 @@ async function httpNetworkFetch ( const key = headersList[n + 0].toString('latin1') const val = headersList[n + 1].toString('latin1') - headers.append(key, val) + headers[kHeadersList].append(key, val) } resolve({ diff --git a/test/fetch/http2.js b/test/fetch/http2.js index 521c97bea97..9b3c95b8f1f 100644 --- a/test/fetch/http2.js +++ b/test/fetch/http2.js @@ -6,16 +6,13 @@ const { once } = require('node:events') const { Blob } = require('node:buffer') const { Readable } = require('node:stream') -const { test, plan, skip } = require('tap') +const { test, plan } = require('tap') const pem = require('https-pem') const { Client, fetch } = require('../..') const nodeVersion = Number(process.version.split('v')[1].split('.')[0]) -skip('Skip H2 test due to pseudo-header issue.') -process.exit(0) - plan(6) test('[Fetch] Issue#2311', async t => { @@ -87,7 +84,7 @@ test('[Fetch] Simple GET with h2', async t => { stream.end(expectedRequestBody) }) - t.plan(4) + t.plan(5) server.listen() await once(server, 'listening') @@ -120,6 +117,10 @@ test('[Fetch] Simple GET with h2', async t => { t.equal(responseBody, expectedRequestBody) t.equal(response.headers.get('x-method'), 'GET') t.equal(response.headers.get('x-custom-h2'), 'foo') + // https://github.com/nodejs/undici/issues/2415 + t.throws(() => { + response.headers.get(':status') + }, TypeError) // See https://fetch.spec.whatwg.org/#concept-response-status-message t.equal(response.statusText, '')