@@ -51,6 +51,45 @@ describe('Converters', () => {
51
51
expect ( request . url ) . toBe ( 'http://api.example.com/test' ) ;
52
52
} ) ;
53
53
54
+ it ( 'handles undefined values in multiValueHeaders arrays' , ( ) => {
55
+ // Prepare
56
+ const event = {
57
+ ...baseEvent ,
58
+ multiValueHeaders : {
59
+ Accept : undefined ,
60
+ 'Custom-Header' : [ 'value1' ] ,
61
+ } ,
62
+ } ;
63
+
64
+ // Act
65
+ const request = proxyEventToWebRequest ( event ) ;
66
+
67
+ // Assess
68
+ expect ( request ) . toBeInstanceOf ( Request ) ;
69
+ expect ( request . headers . get ( 'Accept' ) ) . toBe ( null ) ;
70
+ expect ( request . headers . get ( 'Custom-Header' ) ) . toBe ( 'value1' ) ;
71
+ } ) ;
72
+
73
+ it ( 'handles undefined values in multiValueQueryStringParameters arrays' , ( ) => {
74
+ // Prepare
75
+ const event = {
76
+ ...baseEvent ,
77
+ multiValueQueryStringParameters : {
78
+ filter : undefined ,
79
+ sort : [ 'desc' ] ,
80
+ } ,
81
+ } ;
82
+
83
+ // Act
84
+ const request = proxyEventToWebRequest ( event ) ;
85
+
86
+ // Assess
87
+ expect ( request ) . toBeInstanceOf ( Request ) ;
88
+ const url = new URL ( request . url ) ;
89
+ expect ( url . searchParams . has ( 'filter' ) ) . toBe ( false ) ;
90
+ expect ( url . searchParams . get ( 'sort' ) ) . toBe ( 'desc' ) ;
91
+ } ) ;
92
+
54
93
it ( 'handles POST request with string body' , ( ) => {
55
94
// Prepare
56
95
const event = {
@@ -254,6 +293,45 @@ describe('Converters', () => {
254
293
expect ( url . searchParams . get ( 'single' ) ) . toBe ( 'value' ) ;
255
294
expect ( url . searchParams . getAll ( 'multi' ) ) . toEqual ( [ 'value1' , 'value2' ] ) ;
256
295
} ) ;
296
+
297
+ it ( 'skips undefined queryStringParameter values' , ( ) => {
298
+ // Prepare
299
+ const event = {
300
+ ...baseEvent ,
301
+ queryStringParameters : {
302
+ valid : 'value' ,
303
+ null : undefined ,
304
+ } ,
305
+ } ;
306
+
307
+ // Act
308
+ const request = proxyEventToWebRequest ( event ) ;
309
+
310
+ // Assess
311
+ expect ( request ) . toBeInstanceOf ( Request ) ;
312
+ const url = new URL ( request . url ) ;
313
+ expect ( url . searchParams . get ( 'valid' ) ) . toBe ( 'value' ) ;
314
+ expect ( url . searchParams . has ( 'null' ) ) . toBe ( false ) ;
315
+ } ) ;
316
+
317
+ it ( 'skips undefined header values' , ( ) => {
318
+ // Prepare
319
+ const event = {
320
+ ...baseEvent ,
321
+ headers : {
322
+ 'Valid-Header' : 'value' ,
323
+ 'Undefined-Header' : undefined ,
324
+ } ,
325
+ } ;
326
+
327
+ // Act
328
+ const request = proxyEventToWebRequest ( event ) ;
329
+
330
+ // Assess
331
+ expect ( request ) . toBeInstanceOf ( Request ) ;
332
+ expect ( request . headers . get ( 'Valid-Header' ) ) . toBe ( 'value' ) ;
333
+ expect ( request . headers . get ( 'Undefined-Header' ) ) . toBe ( null ) ;
334
+ } ) ;
257
335
} ) ;
258
336
259
337
describe ( 'responseToProxyResult' , ( ) => {
0 commit comments