Skip to content

Commit

Permalink
fix: implement Headers#set correctly (#2432)
Browse files Browse the repository at this point in the history
* fix: implement `Headers#set` correctly

* fix: HeadersList

* test: add

* test: fix
  • Loading branch information
tsctx committed Nov 14, 2023
1 parent f996014 commit 5555e5e
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
4 changes: 2 additions & 2 deletions lib/fetch/headers.js
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ class HeadersList {
// the first such header to value and remove the
// others.
// 2. Otherwise, append header (name, value) to list.
return this[kHeadersMap].set(lowercaseName, { name, value })
this[kHeadersMap].set(lowercaseName, { name, value })
}

// https://fetch.spec.whatwg.org/#concept-header-list-delete
Expand Down Expand Up @@ -401,7 +401,7 @@ class Headers {
// 7. Set (name, value) in this’s header list.
// 8. If this’s guard is "request-no-cors", then remove
// privileged no-CORS request headers from this
return this[kHeadersList].set(name, value)
this[kHeadersList].set(name, value)
}

// https://fetch.spec.whatwg.org/#dom-headers-getsetcookie
Expand Down
12 changes: 11 additions & 1 deletion test/fetch/headers.js
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ tap.test('Headers has', t => {
})

tap.test('Headers set', t => {
t.plan(4)
t.plan(5)

t.test('sets valid header entry to instance', t => {
t.plan(2)
Expand Down Expand Up @@ -294,6 +294,16 @@ tap.test('Headers set', t => {
t.throws(() => headers.set('undici'), 'throws on missing value')
t.throws(() => headers.set('invalid @ header ? name', 'valid value'), 'throws on invalid name')
})

// https://github.com/nodejs/undici/issues/2431
t.test('`Headers#set` returns undefined', t => {
t.plan(2)
const headers = new Headers()

t.same(headers.set('a', 'b'), undefined)

t.notOk(headers.set('c', 'd') instanceof Map)
})
})

tap.test('Headers forEach', t => {
Expand Down

0 comments on commit 5555e5e

Please sign in to comment.