From 1d835ad6ecab5bb39625134ab41dcf3e638fdf3d Mon Sep 17 00:00:00 2001 From: Shakker Date: Fri, 8 May 2026 23:45:15 +0100 Subject: [PATCH] test: advance feishu queue timers --- extensions/feishu/src/sequential-queue.test.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/extensions/feishu/src/sequential-queue.test.ts b/extensions/feishu/src/sequential-queue.test.ts index 2f4d6971860..bf66c200bcb 100644 --- a/extensions/feishu/src/sequential-queue.test.ts +++ b/extensions/feishu/src/sequential-queue.test.ts @@ -1,4 +1,4 @@ -import { describe, expect, it } from "vitest"; +import { afterEach, describe, expect, it, vi } from "vitest"; import { createSequentialQueue } from "./sequential-queue.js"; function createDeferred() { @@ -13,6 +13,10 @@ function createDeferred() { } describe("createSequentialQueue", () => { + afterEach(() => { + vi.useRealTimers(); + }); + it("serializes tasks for the same key", async () => { const enqueue = createSequentialQueue(); const gate = createDeferred(); @@ -94,6 +98,7 @@ describe("createSequentialQueue", () => { }); it("evicts a stuck task after taskTimeoutMs so newer same-key work proceeds", async () => { + vi.useFakeTimers(); const timeouts: Array<{ key: string; timeoutMs: number }> = []; const enqueue = createSequentialQueue({ taskTimeoutMs: 25, @@ -116,6 +121,7 @@ describe("createSequentialQueue", () => { order.push("follow-up:ran"); }); + await vi.advanceTimersByTimeAsync(25); await followUp; expect(order).toEqual(["stuck:start", "follow-up:ran"]); @@ -127,6 +133,7 @@ describe("createSequentialQueue", () => { }); it("disables the timeout cap when taskTimeoutMs is 0 (legacy behavior)", async () => { + vi.useFakeTimers(); const timeouts: Array<{ key: string; timeoutMs: number }> = []; const enqueue = createSequentialQueue({ taskTimeoutMs: 0, @@ -147,7 +154,7 @@ describe("createSequentialQueue", () => { }); // Wait long enough that a timeout would have fired if it were active. - await new Promise((resolve) => setTimeout(resolve, 30)); + await vi.advanceTimersByTimeAsync(30); expect(order).toEqual(["first:start"]); expect(timeouts).toEqual([]);