@@ -415,4 +415,66 @@ describe('log system', () => {
415415
416416 expect ( log ?. spanId ) . toBeTruthy ( ) ;
417417 } ) ;
418+
419+ it ( 'should use custom request id header name when expressRequestIdHeaderName is set' , async ( ) => {
420+ const customHeaderName = 'x-custom-request-id' ;
421+ const { app, logger} = setupApp ( {
422+ config : {
423+ expressRequestIdHeaderName : customHeaderName ,
424+ } ,
425+ } ) ;
426+
427+ const agent = request . agent ( app . express ) ;
428+
429+ const requestId = Math . random ( ) . toString ( ) ;
430+
431+ const response = await agent . get ( '/get' ) . set ( customHeaderName , requestId ) ;
432+
433+ // Check that response contains custom header
434+ expect ( response . headers [ customHeaderName ] ) . toBe ( requestId ) ;
435+
436+ // last log with response
437+ let log = JSON . parse ( logger . write . mock . calls ?. pop ( ) || '{}' ) ;
438+
439+ // Check response log with custom header
440+ expect ( log ) . toMatchObject ( {
441+ msg : `[Express GET] Request completed [${ requestId } ]` ,
442+ level : 30 ,
443+ name : APP_NAME ,
444+ time : expect . any ( Number ) ,
445+ req : {
446+ id : requestId ,
447+ method : 'GET' ,
448+ url : '/get' ,
449+ } ,
450+ res : {
451+ statusCode : '200' ,
452+ responseTime : expect . any ( Number ) ,
453+ headers : {
454+ [ customHeaderName ] : requestId ,
455+ } ,
456+ } ,
457+ } ) ;
458+
459+ // first log with request
460+ log = JSON . parse ( logger . write . mock . calls ?. pop ( ) || '{}' ) ;
461+
462+ // Check request log contains correct requestId from custom header
463+ expect ( log ) . toMatchObject ( {
464+ msg : `[Express GET] Request started [${ requestId } ]` ,
465+ level : 30 ,
466+ name : APP_NAME ,
467+ time : expect . any ( Number ) ,
468+ req : {
469+ id : requestId ,
470+ method : 'GET' ,
471+ url : '/get' ,
472+ headers : {
473+ [ customHeaderName ] : requestId ,
474+ } ,
475+ remoteAddress : expect . any ( String ) ,
476+ remotePort : expect . any ( Number ) ,
477+ } ,
478+ } ) ;
479+ } ) ;
418480} ) ;
0 commit comments