@@ -9,6 +9,7 @@ const request = require('../support/client');
9
9
const assert = require ( 'assert' ) ;
10
10
const should = require ( 'should' ) ;
11
11
const cookieParser = require ( 'cookie-parser' ) ;
12
+ const cookiejar = require ( 'cookiejar' ) ;
12
13
const session = require ( 'express-session' ) ;
13
14
let http = require ( 'http' ) ;
14
15
@@ -42,6 +43,10 @@ app.get('/getcookie', (request_, res) => {
42
43
res . status ( 200 ) . send ( request_ . cookies . cookie ) ;
43
44
} ) ;
44
45
46
+ app . get ( '/cookieheader' , ( request_ , res ) => {
47
+ res . status ( 200 ) . send ( request_ . headers . cookie ) ;
48
+ } ) ;
49
+
45
50
app . get ( '/dashboard' , ( request_ , res ) => {
46
51
if ( request_ . session . user ) return res . status ( 200 ) . send ( 'dashboard' ) ;
47
52
res . status ( 401 ) . send ( 'dashboard' ) ;
@@ -120,6 +125,21 @@ describe('request', () => {
120
125
assert . strictEqual ( res . text , 'jar' ) ;
121
126
} ) ) ;
122
127
128
+ it ( 'should produce a valid cookie header' , ( done ) => {
129
+ agent4
130
+ . set ( 'Cookie' , 'first_cookie=dummy; cookie=jam' )
131
+ . get ( `${ base } /cookieheader` )
132
+ . then ( ( res ) => {
133
+ const cookiePairs = res . text . split ( '; ' ) ; // https://httpwg.org/specs/rfc6265.html#rfc.section.4.2.1
134
+ assert . deepStrictEqual ( cookiePairs , [
135
+ 'first_cookie=dummy' ,
136
+ 'cookie=jar' ,
137
+ `connect.sid=${ agent4 . jar . getCookie ( 'connect.sid' , cookiejar . CookieAccessInfo . All ) . value } ` ,
138
+ ] ) ;
139
+ done ( ) ;
140
+ } ) ;
141
+ } ) ;
142
+
123
143
it ( 'should not share cookies between domains' , ( ) => {
124
144
assert . equal ( agent4 . get ( 'https://google.com' ) . cookies , "" ) ;
125
145
} ) ;
0 commit comments