File tree Expand file tree Collapse file tree 2 files changed +24
-1
lines changed
packages/middleware-recursion-detection/src Expand file tree Collapse file tree 2 files changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -70,6 +70,27 @@ describe(recursionDetectionMiddleware.name, () => {
7070 expect ( request . headers [ TRACE_ID_HEADER_NAME ] ) . toBe ( "some-real-trace-id" ) ;
7171 } ) ;
7272
73+ it ( `should NOT set ${ TRACE_ID_HEADER_NAME } header when the header is already set in all lowercase` , async ( ) => {
74+ process . env = {
75+ AWS_LAMBDA_FUNCTION_NAME : "some-function" ,
76+ _X_AMZN_TRACE_ID : "some-trace-id" ,
77+ } ;
78+ const handler = recursionDetectionMiddleware ( { runtime : "node" } ) ( mockNextHandler , { } as any ) ;
79+ await handler ( {
80+ input : { } ,
81+ request : new HttpRequest ( {
82+ headers : {
83+ [ TRACE_ID_HEADER_NAME . toLowerCase ( ) ] : "some-real-trace-id" ,
84+ } ,
85+ } ) ,
86+ } ) ;
87+
88+ const { calls } = ( mockNextHandler as any ) . mock ;
89+ expect ( calls . length ) . toBe ( 1 ) ;
90+ const { request } = mockNextHandler . mock . calls [ 0 ] [ 0 ] ;
91+ expect ( request . headers [ TRACE_ID_HEADER_NAME . toLowerCase ( ) ] ) . toBe ( "some-real-trace-id" ) ;
92+ } ) ;
93+
7394 it ( "has no effect for browser runtime" , async ( ) => {
7495 process . env = {
7596 AWS_LAMBDA_FUNCTION_NAME : "some-function" ,
Original file line number Diff line number Diff line change @@ -30,7 +30,9 @@ export const recursionDetectionMiddleware =
3030 if (
3131 ! HttpRequest . isInstance ( request ) ||
3232 options . runtime !== "node" ||
33- request . headers . hasOwnProperty ( TRACE_ID_HEADER_NAME )
33+ Object . keys ( request . headers ) . some (
34+ ( key ) => key . toLowerCase ( ) === TRACE_ID_HEADER_NAME . toLowerCase ( )
35+ )
3436 ) {
3537 return next ( args ) ;
3638 }
You can’t perform that action at this time.
0 commit comments