























@@ -298,18 +298,29 @@ export function createFeishuTextMessageEvent(params: {
298298};
299299}
300300301+async function expectFeishuLifecycleEventually(
302+assertion: () => void | Promise<void>,
303+timeoutMs: number,
304+) {
305+try {
306+await assertion();
307+} catch {
308+await vi.waitFor(assertion, { timeout: timeoutMs });
309+}
310+}
311+301312export async function replayFeishuLifecycleEvent(params: {
302313handler: (data: unknown) => Promise<void>;
303314event: unknown;
304315waitForFirst: () => void | Promise<void>;
305316waitForSecond?: () => void | Promise<void>;
306317waitTimeoutMs?: number;
307318}) {
308-const waitOptions = { timeout: params.waitTimeoutMs ?? FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS };
319+const waitTimeoutMs = params.waitTimeoutMs ?? FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS;
309320await params.handler(params.event);
310-await vi.waitFor(params.waitForFirst, waitOptions);
321+await expectFeishuLifecycleEventually(params.waitForFirst, waitTimeoutMs);
311322await params.handler(params.event);
312-await vi.waitFor(params.waitForSecond ?? params.waitForFirst, waitOptions);
323+await expectFeishuLifecycleEventually(params.waitForSecond ?? params.waitForFirst, waitTimeoutMs);
313324}
314325315326export async function runFeishuLifecycleSequence(
@@ -318,9 +329,10 @@ export async function runFeishuLifecycleSequence(
318329) {
319330for (const [index, deliver] of deliveries.entries()) {
320331await deliver();
321-await vi.waitFor(waits[index] ?? waits.at(-1) ?? (() => {}), {
322-timeout: FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS,
323-});
332+await expectFeishuLifecycleEventually(
333+waits[index] ?? waits.at(-1) ?? (() => {}),
334+FEISHU_LIFECYCLE_WAIT_TIMEOUT_MS,
335+);
324336}
325337}
326338此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。