fix(test): flush fake timer microtasks in todo continuation tests
This commit is contained in:
parent
27d5379215
commit
538b1005ef
@ -41,6 +41,12 @@ function createFakeTimers(): FakeTimers {
|
|||||||
return delay < 0 ? 0 : delay
|
return delay < 0 ? 0 : delay
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const flushMicrotasks = async (iterations: number = 5) => {
|
||||||
|
for (let index = 0; index < iterations; index++) {
|
||||||
|
await Promise.resolve()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const schedule = (callback: TimerCallback, delay: number | undefined, interval: number | null, args: any[]) => {
|
const schedule = (callback: TimerCallback, delay: number | undefined, interval: number | null, args: any[]) => {
|
||||||
const id = nextId++
|
const id = nextId++
|
||||||
timers.set(id, {
|
timers.set(id, {
|
||||||
@ -130,16 +136,16 @@ function createFakeTimers(): FakeTimers {
|
|||||||
cleared.delete(next.id)
|
cleared.delete(next.id)
|
||||||
}
|
}
|
||||||
|
|
||||||
await Promise.resolve()
|
await flushMicrotasks()
|
||||||
}
|
}
|
||||||
timerNow = target
|
timerNow = target
|
||||||
await Promise.resolve()
|
await flushMicrotasks()
|
||||||
}
|
}
|
||||||
|
|
||||||
const advanceClockBy = async (ms: number) => {
|
const advanceClockBy = async (ms: number) => {
|
||||||
const clamped = Math.max(0, ms)
|
const clamped = Math.max(0, ms)
|
||||||
clockNow += clamped
|
clockNow += clamped
|
||||||
await Promise.resolve()
|
await flushMicrotasks()
|
||||||
}
|
}
|
||||||
|
|
||||||
const restore = () => {
|
const restore = () => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user