diff --git a/src/process/command-queue.test.ts b/src/process/command-queue.test.ts index 0f6ff862a27..3460875bff1 100644 --- a/src/process/command-queue.test.ts +++ b/src/process/command-queue.test.ts @@ -84,9 +84,12 @@ describe("command queue", () => { vi.useFakeTimers(); try { - // First task holds the queue long enough to trigger wait notice. + let releaseFirst!: () => void; + const blocker = new Promise((resolve) => { + releaseFirst = resolve; + }); const first = enqueueCommand(async () => { - await new Promise((resolve) => setTimeout(resolve, 8)); + await blocker; }); const second = enqueueCommand(async () => {}, { @@ -97,7 +100,8 @@ describe("command queue", () => { }, }); - await vi.advanceTimersByTimeAsync(30); + await vi.advanceTimersByTimeAsync(6); + releaseFirst(); await Promise.all([first, second]); expect(waited).not.toBeNull(); @@ -144,9 +148,9 @@ describe("command queue", () => { try { const drainPromise = waitForActiveTasks(5000); - // Resolve the blocker after a short delay. - setTimeout(() => resolve1(), 10); - await vi.advanceTimersByTimeAsync(100); + await vi.advanceTimersByTimeAsync(50); + resolve1(); + await vi.advanceTimersByTimeAsync(50); const { drained } = await drainPromise; expect(drained).toBe(true);