From 53fd7f81631c78892a8d89f9dc49e92a2eed81d5 Mon Sep 17 00:00:00 2001 From: ademczuk Date: Tue, 3 Mar 2026 01:34:16 +0100 Subject: [PATCH] fix(test): resolve Feishu hoisted mock export syntax error (#32128) - Remove vi.hoisted() wrapper from exported mock in shared module (Vitest cannot export hoisted variables) - Inline vi.hoisted + vi.mock in startup test so Vitest's per-file hoisting registers mocks before production imports Co-authored-by: Claude Opus 4.6 --- extensions/feishu/src/monitor.startup.test.ts | 13 ++++++++++++- extensions/feishu/src/monitor.test-mocks.ts | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/extensions/feishu/src/monitor.startup.test.ts b/extensions/feishu/src/monitor.startup.test.ts index 8f4630c3379..5abd61cc5b7 100644 --- a/extensions/feishu/src/monitor.startup.test.ts +++ b/extensions/feishu/src/monitor.startup.test.ts @@ -1,7 +1,18 @@ import type { ClawdbotConfig } from "openclaw/plugin-sdk"; import { afterEach, describe, expect, it, vi } from "vitest"; + +const probeFeishuMock = vi.hoisted(() => vi.fn()); + +vi.mock("./probe.js", () => ({ + probeFeishu: probeFeishuMock, +})); + +vi.mock("./client.js", () => ({ + createFeishuWSClient: vi.fn(() => ({ start: vi.fn() })), + createEventDispatcher: vi.fn(() => ({ register: vi.fn() })), +})); + import { monitorFeishuProvider, stopFeishuMonitor } from "./monitor.js"; -import { probeFeishuMock } from "./monitor.test-mocks.js"; function buildMultiAccountWebsocketConfig(accountIds: string[]): ClawdbotConfig { return { diff --git a/extensions/feishu/src/monitor.test-mocks.ts b/extensions/feishu/src/monitor.test-mocks.ts index 2c95375d100..41e5d9c0086 100644 --- a/extensions/feishu/src/monitor.test-mocks.ts +++ b/extensions/feishu/src/monitor.test-mocks.ts @@ -1,6 +1,6 @@ import { vi } from "vitest"; -export const probeFeishuMock: ReturnType = vi.hoisted(() => vi.fn()); +export const probeFeishuMock: ReturnType = vi.fn(); vi.mock("./probe.js", () => ({ probeFeishu: probeFeishuMock,