@@ -78,6 +78,7 @@ test.beforeEach((t) => {
7878 metrics . initialize ( )
7979 t . context . clock . reset ( )
8080 recordedRequests . length = 0
81+ requestLatency = 0
8182 t . context . requester = makeRequester ( )
8283} )
8384
@@ -496,7 +497,7 @@ test.serial(
496497)
497498
498499test . serial (
499- 'should reuse a dupcliate request that is already sent but does not have a response yet' ,
500+ 'should reuse a duplicate request that is already sent but does not have a response yet' ,
500501 wrapTest ( async ( t ) => {
501502 const params1 = { param : 'test1' }
502503 const params2 = params1
@@ -544,6 +545,39 @@ test.serial(
544545 } ) ,
545546)
546547
548+ test . serial (
549+ 'should reuse a duplicate request that is made immediately after the previous request' ,
550+ wrapTest ( async ( t ) => {
551+ const params1 = { param : 'test1' }
552+ const params2 = params1
553+
554+ const t0 = Date . now ( )
555+
556+ let resultTime1 = 0
557+ let resultTime2 = 0
558+
559+ const promise1 = makeRequest ( t , params1 )
560+ promise1 . then ( ( ) => {
561+ resultTime1 = Date . now ( )
562+ } )
563+ const promise2 = makeRequest ( t , params2 )
564+ promise2 . then ( ( ) => {
565+ resultTime2 = Date . now ( )
566+ } )
567+
568+ t . deepEqual ( await Promise . all ( [ promise1 , promise2 ] ) , [ params1 , params2 ] )
569+
570+ t . deepEqual ( [ resultTime1 - t0 , resultTime2 - t0 ] , [ 0 , 0 ] )
571+
572+ t . deepEqual ( recordedRequests , [
573+ {
574+ params : params1 ,
575+ timestamp : t0 ,
576+ } ,
577+ ] )
578+ } ) ,
579+ )
580+
547581test . serial (
548582 'should reuse a duplicate request even if it fails' ,
549583 wrapTest ( async ( t ) => {
0 commit comments