Skip to content

Commit 31ed5a9

Browse files
authored
DF-24087: Add test for request deduping bug (#840)
1 parent 89a7d86 commit 31ed5a9

1 file changed

Lines changed: 35 additions & 1 deletion

File tree

test/util/requester.test.ts

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

498499
test.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+
547581
test.serial(
548582
'should reuse a duplicate request even if it fails',
549583
wrapTest(async (t) => {

0 commit comments

Comments
 (0)