File tree 2 files changed +21
-0
lines changed 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change @@ -75,6 +75,7 @@ class HeadersList {
75
75
if ( init instanceof HeadersList ) {
76
76
this [ kHeadersMap ] = new Map ( init [ kHeadersMap ] )
77
77
this [ kHeadersSortedMap ] = init [ kHeadersSortedMap ]
78
+ this . cookies = init . cookies
78
79
} else {
79
80
this [ kHeadersMap ] = new Map ( init )
80
81
this [ kHeadersSortedMap ] = null
Original file line number Diff line number Diff line change 3
3
const tap = require ( 'tap' )
4
4
const { Headers, fill } = require ( '../../lib/fetch/headers' )
5
5
const { kGuard } = require ( '../../lib/fetch/symbols' )
6
+ const { once } = require ( 'events' )
7
+ const { fetch } = require ( '../..' )
8
+ const { createServer } = require ( 'http' )
6
9
7
10
tap . test ( 'Headers initialization' , t => {
8
11
t . plan ( 8 )
@@ -692,5 +695,22 @@ tap.test('Headers.prototype.getSetCookie', (t) => {
692
695
t . end ( )
693
696
} )
694
697
698
+ // https://github.com/nodejs/undici/issues/1935
699
+ t . test ( 'When Headers are cloned, so are the cookies' , async ( t ) => {
700
+ const server = createServer ( ( req , res ) => {
701
+ res . setHeader ( 'Set-Cookie' , 'test=onetwo' )
702
+ res . end ( 'Hello World!' )
703
+ } ) . listen ( 0 )
704
+
705
+ await once ( server , 'listening' )
706
+ t . teardown ( server . close . bind ( server ) )
707
+
708
+ const res = await fetch ( `http://localhost:${ server . address ( ) . port } ` )
709
+ const entries = Object . fromEntries ( res . headers . entries ( ) )
710
+
711
+ t . same ( res . headers . getSetCookie ( ) , [ 'test=onetwo' ] )
712
+ t . ok ( 'set-cookie' in entries )
713
+ } )
714
+
695
715
t . end ( )
696
716
} )
You can’t perform that action at this time.
0 commit comments