Skip to content

Commit d0e8889

Browse files
committed
fix null value error for multiValueHeaders
1 parent d96bbb3 commit d0e8889

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

lib/request.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class REQUEST {
8787

8888
// Set the raw headers (normalize multi-values)
8989
// per https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
90-
this.rawHeaders = this._multiValueSupport ?
90+
this.rawHeaders = this._multiValueSupport && this.app._event.multiValueHeaders != null ?
9191
Object.keys(this.app._event.multiValueHeaders).reduce((headers,key) =>
9292
Object.assign(headers,{ [key]: UTILS.fromArray(this.app._event.multiValueHeaders[key]) }),{})
9393
: this.app._event.headers || {}

test/headers.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,12 @@ describe('Header Tests:', function() {
172172
expect(result).to.deep.equal({ multiValueHeaders: { 'content-type': ['application/json'], 'test': ['testVal1','testVal2'] }, statusCode: 200, body: '{"method":"get","status":"ok"}', isBase64Encoded: false })
173173
}) // end it
174174

175+
it('Multi-value Header: /testMulti (null header)', async function() {
176+
let _event = Object.assign({},event,{ path: '/testMulti', multiValueHeaders: null })
177+
let result = await new Promise(r => api.run(_event,{},(e,res) => { r(res) }))
178+
expect(result).to.deep.equal({ multiValueHeaders: { 'content-type': ['application/json'], 'test': ['testVal1','testVal2'] }, statusCode: 200, body: '{"method":"get","status":"ok"}', isBase64Encoded: false })
179+
}) // end it
180+
175181
it('HTML Convenience Method: /testHTML', async function() {
176182
let _event = Object.assign({},event,{ path: '/testHTML'})
177183
let result = await new Promise(r => api.run(_event,{},(e,res) => { r(res) }))

0 commit comments

Comments
 (0)