Describe the bug
Node.js version:
v16.20.2
OS version:
macOS 14.2.1
Description:
I use set('Cookie',[xxx]), but the cookie was not added to the request header
const request = require('supertest');
const server = require('./server.js');
const agent = request.agent(server);
const postRes = await agent.post('/verify').set('Cookie', [`csrf-token=xxxxx`]);
Actual behavior
Cookie is not added to the request header
Expected behavior
Cookies can be added to request headers
Code to reproduce
My code is as follows,The first time I set cookie, it can be added to the request header correctly.But the second time I set cookie, it was not added to the request header.
const request = require('supertest');
const server = require('./server.js');
const agent = request.agent(server);
const postRes = await agent.post('/verify').set('Cookie', [`csrf-token=xxxxx`]);
const postRes1 = await agent.post('/verify').set('Cookie', [`csrf-token=xxxxx`]);
I briefly checked this problem, It's because my server returned the set-cookie response header. Then the second request will only bring the cookie returned by the first request, but not the cookie I set.like this
I hope that both the cookies returned by the first request and the cookies I set are added to the response headers correctly. like this
Cookie: csrf-token=xxxxx;token=xxx
I checked the source code
https://github.com/ladjs/superagent/blob/1c8338b2e0a3b8f604d08acc7f3cbe305be1e571/src/node/index.js#L856

hasOwn(this._header, 'cookie') return false, because of my set('Cookie',[xxx]) it will be added as header['Cookie']=[xxx],instead of header['cookie']=xxx
If I write like this, it will add the cookie to the header correctly
const postRes = await agent.post('/verify').set('Cookie', [`csrf-token=xxxxx`]);
const postRes1 = await agent.post('/verify').set('cookie', `csrf-token=xxxxx`);
I don't know if this is a bug or if it's by design
Checklist
Describe the bug
Node.js version:
v16.20.2
OS version:
macOS 14.2.1
Description:
I use
set('Cookie',[xxx]), but the cookie was not added to the request headerActual behavior
Cookie is not added to the request header
Expected behavior
Cookies can be added to request headers
Code to reproduce
My code is as follows,The first time I set cookie, it can be added to the request header correctly.But the second time I set cookie, it was not added to the request header.
I briefly checked this problem, It's because my server returned the
set-cookieresponse header. Then the second request will only bring the cookie returned by the first request, but not the cookie I set.like thisI hope that both the cookies returned by the first request and the cookies I set are added to the response headers correctly. like this
I checked the source code
https://github.com/ladjs/superagent/blob/1c8338b2e0a3b8f604d08acc7f3cbe305be1e571/src/node/index.js#L856
hasOwn(this._header, 'cookie')returnfalse, because of myset('Cookie',[xxx])it will be added asheader['Cookie']=[xxx],instead ofheader['cookie']=xxxIf I write like this, it will add the cookie to the header correctly
I don't know if this is a bug or if it's by design
Checklist