diff --git a/lib/core/util.js b/lib/core/util.js index f2ead039363..6b9cb1df27a 100644 --- a/lib/core/util.js +++ b/lib/core/util.js @@ -228,7 +228,7 @@ function parseHeaders (headers, obj = {}) { if (!val) { if (Array.isArray(headers[i + 1])) { - obj[key] = headers[i + 1] + obj[key] = headers[i + 1].map(x => x.toString('utf8')) } else { obj[key] = headers[i + 1].toString('utf8') } diff --git a/test/mock-agent.js b/test/mock-agent.js index 4145432c2c6..d96a511a167 100644 --- a/test/mock-agent.js +++ b/test/mock-agent.js @@ -2594,5 +2594,9 @@ test('MockAgent - headers should be array of strings', async (t) => { method: 'GET' }) - t.equal(headers['set-cookie'].length, 3) + t.same(headers['set-cookie'], [ + 'foo=bar', + 'bar=baz', + 'baz=qux' + ]) }) diff --git a/test/util.js b/test/util.js index 48a21a1141f..794c68e3f77 100644 --- a/test/util.js +++ b/test/util.js @@ -83,12 +83,13 @@ test('validateHandler', (t) => { }) test('parseHeaders', (t) => { - t.plan(5) + t.plan(6) t.same(util.parseHeaders(['key', 'value']), { key: 'value' }) t.same(util.parseHeaders([Buffer.from('key'), Buffer.from('value')]), { key: 'value' }) t.same(util.parseHeaders(['Key', 'Value']), { key: 'Value' }) t.same(util.parseHeaders(['Key', 'value', 'key', 'Value']), { key: ['value', 'Value'] }) t.same(util.parseHeaders(['key', ['value1', 'value2', 'value3']]), { key: ['value1', 'value2', 'value3'] }) + t.same(util.parseHeaders([Buffer.from('key'), [Buffer.from('value1'), Buffer.from('value2'), Buffer.from('value3')]]), { key: ['value1', 'value2', 'value3'] }) }) test('parseRawHeaders', (t) => {