Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 35 additions & 1 deletion test/util/requester.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ test.beforeEach((t) => {
metrics.initialize()
t.context.clock.reset()
recordedRequests.length = 0
requestLatency = 0
t.context.requester = makeRequester()
})

Expand Down Expand Up @@ -496,7 +497,7 @@ test.serial(
)

test.serial(
'should reuse a dupcliate request that is already sent but does not have a response yet',
'should reuse a duplicate request that is already sent but does not have a response yet',
wrapTest(async (t) => {
const params1 = { param: 'test1' }
const params2 = params1
Expand Down Expand Up @@ -544,6 +545,39 @@ test.serial(
}),
)

test.serial(
'should reuse a duplicate request that is made immediately after the previous request',
wrapTest(async (t) => {
const params1 = { param: 'test1' }
const params2 = params1

const t0 = Date.now()

let resultTime1 = 0
let resultTime2 = 0

const promise1 = makeRequest(t, params1)
promise1.then(() => {
resultTime1 = Date.now()
})
const promise2 = makeRequest(t, params2)
promise2.then(() => {
resultTime2 = Date.now()
})

t.deepEqual(await Promise.all([promise1, promise2]), [params1, params2])

t.deepEqual([resultTime1 - t0, resultTime2 - t0], [0, 0])

t.deepEqual(recordedRequests, [
{
params: params1,
timestamp: t0,
},
])
}),
)

test.serial(
'should reuse a duplicate request even if it fails',
wrapTest(async (t) => {
Expand Down
Loading