From cf3d9dfca36e713eb4cbe836822357e99a3d412a Mon Sep 17 00:00:00 2001 From: Khafra Date: Sat, 8 Apr 2023 13:39:37 -0400 Subject: [PATCH] fix: clear set-cookie headers (#2052) --- lib/fetch/headers.js | 1 + test/fetch/request.js | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/lib/fetch/headers.js b/lib/fetch/headers.js index 5093ef8726f..b42a5edeaab 100644 --- a/lib/fetch/headers.js +++ b/lib/fetch/headers.js @@ -95,6 +95,7 @@ class HeadersList { clear () { this[kHeadersMap].clear() this[kHeadersSortedMap] = null + this.cookies = null } // https://fetch.spec.whatwg.org/#concept-header-list-append diff --git a/test/fetch/request.js b/test/fetch/request.js index 29d88b2ec66..cd32adc7d6f 100644 --- a/test/fetch/request.js +++ b/test/fetch/request.js @@ -460,3 +460,19 @@ test('constructing Request with third party FormData body', async (t) => { t.equal(contentType[0], 'multipart/form-data; boundary') t.ok((await req.text()).startsWith(`--${contentType[1]}`)) }) + +// https://github.com/nodejs/undici/issues/2050 +test('set-cookie headers get cleared when passing a Request as first param', (t) => { + const req1 = new Request('http://localhost', { + headers: { + 'set-cookie': 'a=1' + } + }) + + t.same([...req1.headers], [['set-cookie', 'a=1']]) + const req2 = new Request(req1, { headers: {} }) + + t.same([...req2.headers], []) + t.same(req2.headers.getSetCookie(), []) + t.end() +})