





















@@ -29,6 +29,22 @@ vi.mock("./drive.js", () => ({
2929deliverCommentThreadText: deliverCommentThreadTextMock,
3030}));
313132+async function raceWithNextMacrotask<T>(promise: Promise<T>): Promise<T | "pending"> {
33+let timer: ReturnType<typeof setTimeout> | undefined;
34+try {
35+return await Promise.race([
36+promise,
37+new Promise<"pending">((resolve) => {
38+timer = setTimeout(() => resolve("pending"), 0);
39+}),
40+]);
41+} finally {
42+if (timer) {
43+clearTimeout(timer);
44+}
45+}
46+}
47+3248function buildConfig(overrides?: Partial<ClawdbotConfig>): ClawdbotConfig {
3349return {
3450channels: {
@@ -489,10 +505,7 @@ describe("handleFeishuCommentEvent", () => {
489505} as never,
490506});
491507492-const status = await Promise.race([
493-eventPromise.then(() => "done"),
494-new Promise<string>((resolve) => setTimeout(() => resolve("pending"), 0)),
495-]);
508+const status = await raceWithNextMacrotask(eventPromise.then(() => "done"));
496509497510expect(status).toBe("done");
498511expect(cleanupTypingReaction).toHaveBeenCalledTimes(1);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。