Skip to content

Commit e886e2d

Browse files
authored
Merge pull request #1185 from ScoobySmack2612/HTN/handle-canonical-sanitized-headers
Pkg: httpHeaderNormalizer to handle canonical sanitized headers
2 parents 53c2227 + f5451a6 commit e886e2d

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

packages/http-header-normalizer/__tests__/index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,3 +285,26 @@ test('It should not fail if the event does not contain headers', async (t) => {
285285
t.deepEqual(resultingEvent, expectedEvent)
286286
t.deepEqual(resultingEvent.rawHeaders, undefined)
287287
})
288+
289+
test('It should not fail given a corrupted header key', async (t) => {
290+
const handler = middy((event, context) => event)
291+
292+
handler.use(httpHeaderNormalizer({ canonical: true }))
293+
294+
const event = {
295+
headers: {
296+
'X----': 'foo'
297+
}
298+
}
299+
300+
const expectedHeaders = {
301+
'X----': 'foo'
302+
}
303+
304+
const originalHeaders = { ...event.headers }
305+
306+
const resultingEvent = await handler(event, context)
307+
308+
t.deepEqual(resultingEvent.headers, expectedHeaders)
309+
t.deepEqual(resultingEvent.rawHeaders, originalHeaders)
310+
})

packages/http-header-normalizer/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const normalizeHeaderKey = (key, canonical) => {
4646

4747
return lowerCaseKey
4848
.split('-')
49-
.map((text) => text[0].toUpperCase() + text.substr(1))
49+
.map((text) => (text[0] || '').toUpperCase() + text.substr(1))
5050
.join('-')
5151
}
5252

0 commit comments

Comments
 (0)