From b3ebbe5ba0167f704c76b27ad5b0859e5bedd383 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 23 Apr 2026 11:50:48 +0100 Subject: [PATCH] test(slack): narrow event runtime mocks --- .../slack/src/monitor/events/channels.test.ts | 21 +++++----- .../src/monitor/events/interactions.test.ts | 4 ++ .../slack/src/monitor/events/members.test.ts | 18 ++++----- .../slack/src/monitor/events/messages.test.ts | 39 ++++++++----------- .../slack/src/monitor/events/pins.test.ts | 18 ++++----- .../src/monitor/events/reactions.test.ts | 21 +++++----- 6 files changed, 56 insertions(+), 65 deletions(-) diff --git a/extensions/slack/src/monitor/events/channels.test.ts b/extensions/slack/src/monitor/events/channels.test.ts index 5e73d673a5c..0bde970937e 100644 --- a/extensions/slack/src/monitor/events/channels.test.ts +++ b/extensions/slack/src/monitor/events/channels.test.ts @@ -4,18 +4,15 @@ const enqueueSystemEventMock = vi.hoisted(() => vi.fn()); let registerSlackChannelEvents: typeof import("./channels.js").registerSlackChannelEvents; let createSlackSystemEventTestHarness: typeof import("./system-event-test-harness.js").createSlackSystemEventTestHarness; -async function createChannelRuntimeMock() { - const actual = await vi.importActual( - "openclaw/plugin-sdk/infra-runtime", - ); - return { - ...actual, - enqueueSystemEvent: (...args: unknown[]) => enqueueSystemEventMock(...args), - }; -} - -vi.mock("openclaw/plugin-sdk/infra-runtime", createChannelRuntimeMock); -vi.mock("openclaw/plugin-sdk/infra-runtime.js", createChannelRuntimeMock); +vi.mock("openclaw/plugin-sdk/infra-runtime", () => ({ + enqueueSystemEvent: (...args: unknown[]) => enqueueSystemEventMock(...args), +})); +vi.mock("openclaw/plugin-sdk/infra-runtime.js", () => ({ + enqueueSystemEvent: (...args: unknown[]) => enqueueSystemEventMock(...args), +})); +vi.mock("openclaw/plugin-sdk/security-runtime", () => ({ + readStoreAllowFromForDmPolicy: async () => [], +})); type SlackChannelHandler = (args: { event: Record; diff --git a/extensions/slack/src/monitor/events/interactions.test.ts b/extensions/slack/src/monitor/events/interactions.test.ts index c575e9ada5c..dcb122aefe5 100644 --- a/extensions/slack/src/monitor/events/interactions.test.ts +++ b/extensions/slack/src/monitor/events/interactions.test.ts @@ -17,6 +17,10 @@ vi.mock("openclaw/plugin-sdk/infra-runtime", () => ({ enqueueSystemEvent: (...args: unknown[]) => enqueueSystemEventMock(...args), })); +vi.mock("openclaw/plugin-sdk/security-runtime", () => ({ + readStoreAllowFromForDmPolicy: async () => [], +})); + vi.mock("../../interactive-dispatch.js", () => ({ dispatchSlackPluginInteractiveHandler: (params: { data: string; diff --git a/extensions/slack/src/monitor/events/members.test.ts b/extensions/slack/src/monitor/events/members.test.ts index 472fafd99c2..c13bc64a70b 100644 --- a/extensions/slack/src/monitor/events/members.test.ts +++ b/extensions/slack/src/monitor/events/members.test.ts @@ -7,15 +7,15 @@ let registerSlackMemberEvents: typeof import("./members.js").registerSlackMember let initSlackHarness: typeof import("./system-event-test-harness.js").createSlackSystemEventTestHarness; type MemberOverrides = import("./system-event-test-harness.js").SlackSystemEventTestOverrides; -async function createChannelRuntimeMock() { - const actual = await vi.importActual( - "openclaw/plugin-sdk/infra-runtime", - ); - return { ...actual, enqueueSystemEvent: memberMocks.enqueue }; -} - -vi.mock("openclaw/plugin-sdk/infra-runtime", createChannelRuntimeMock); -vi.mock("openclaw/plugin-sdk/infra-runtime.js", createChannelRuntimeMock); +vi.mock("openclaw/plugin-sdk/infra-runtime", () => ({ + enqueueSystemEvent: (...args: unknown[]) => memberMocks.enqueue(...args), +})); +vi.mock("openclaw/plugin-sdk/infra-runtime.js", () => ({ + enqueueSystemEvent: (...args: unknown[]) => memberMocks.enqueue(...args), +})); +vi.mock("openclaw/plugin-sdk/security-runtime", () => ({ + readStoreAllowFromForDmPolicy: async () => [], +})); type MemberHandler = (args: { event: Record; body: unknown }) => Promise; diff --git a/extensions/slack/src/monitor/events/messages.test.ts b/extensions/slack/src/monitor/events/messages.test.ts index a3479cfaa8d..d6cb37eaafe 100644 --- a/extensions/slack/src/monitor/events/messages.test.ts +++ b/extensions/slack/src/monitor/events/messages.test.ts @@ -4,31 +4,24 @@ import { type SlackSystemEventTestOverrides, } from "./system-event-test-harness.js"; -const messageQueueMock = vi.fn(); -const messageAllowMock = vi.fn(); +const { messageQueueMock, messageAllowMock } = vi.hoisted(() => ({ + messageQueueMock: vi.fn(), + messageAllowMock: vi.fn(), +})); -async function createChannelRuntimeMock() { - const actual = await vi.importActual( - "openclaw/plugin-sdk/infra-runtime", - ); - return { - ...actual, - enqueueSystemEvent: (...args: unknown[]) => messageQueueMock(...args), - }; -} +vi.mock("openclaw/plugin-sdk/infra-runtime", () => ({ + enqueueSystemEvent: (...args: unknown[]) => messageQueueMock(...args), +})); +vi.mock("openclaw/plugin-sdk/infra-runtime.js", () => ({ + enqueueSystemEvent: (...args: unknown[]) => messageQueueMock(...args), +})); +vi.mock("openclaw/plugin-sdk/security-runtime", () => ({ + readStoreAllowFromForDmPolicy: async () => [], +})); -vi.mock("openclaw/plugin-sdk/infra-runtime", createChannelRuntimeMock); -vi.mock("openclaw/plugin-sdk/infra-runtime.js", createChannelRuntimeMock); - -vi.mock("openclaw/plugin-sdk/conversation-runtime", async () => { - const actual = await vi.importActual( - "openclaw/plugin-sdk/conversation-runtime", - ); - return { - ...actual, - readChannelAllowFromStore: (...args: unknown[]) => messageAllowMock(...args), - }; -}); +vi.mock("openclaw/plugin-sdk/conversation-runtime", () => ({ + readChannelAllowFromStore: (...args: unknown[]) => messageAllowMock(...args), +})); let registerSlackMessageEvents: typeof import("./messages.js").registerSlackMessageEvents; diff --git a/extensions/slack/src/monitor/events/pins.test.ts b/extensions/slack/src/monitor/events/pins.test.ts index cd690d57bc6..b08b3712bf7 100644 --- a/extensions/slack/src/monitor/events/pins.test.ts +++ b/extensions/slack/src/monitor/events/pins.test.ts @@ -5,15 +5,15 @@ let registerSlackPinEvents: typeof import("./pins.js").registerSlackPinEvents; let buildPinHarness: typeof import("./system-event-test-harness.js").createSlackSystemEventTestHarness; type PinOverrides = import("./system-event-test-harness.js").SlackSystemEventTestOverrides; -async function createChannelRuntimeMock() { - const actual = await vi.importActual( - "openclaw/plugin-sdk/infra-runtime", - ); - return { ...actual, enqueueSystemEvent: pinEnqueueMock }; -} - -vi.mock("openclaw/plugin-sdk/infra-runtime", createChannelRuntimeMock); -vi.mock("openclaw/plugin-sdk/infra-runtime.js", createChannelRuntimeMock); +vi.mock("openclaw/plugin-sdk/infra-runtime", () => ({ + enqueueSystemEvent: (...args: unknown[]) => pinEnqueueMock(...args), +})); +vi.mock("openclaw/plugin-sdk/infra-runtime.js", () => ({ + enqueueSystemEvent: (...args: unknown[]) => pinEnqueueMock(...args), +})); +vi.mock("openclaw/plugin-sdk/security-runtime", () => ({ + readStoreAllowFromForDmPolicy: async () => [], +})); type PinHandler = (args: { event: Record; body: unknown }) => Promise; diff --git a/extensions/slack/src/monitor/events/reactions.test.ts b/extensions/slack/src/monitor/events/reactions.test.ts index cfe0c6dcbe6..4895b73e78c 100644 --- a/extensions/slack/src/monitor/events/reactions.test.ts +++ b/extensions/slack/src/monitor/events/reactions.test.ts @@ -6,18 +6,15 @@ let createSlackSystemEventTestHarness: typeof import("./system-event-test-harnes type SlackSystemEventTestOverrides = import("./system-event-test-harness.js").SlackSystemEventTestOverrides; -async function createChannelRuntimeMock() { - const actual = await vi.importActual( - "openclaw/plugin-sdk/infra-runtime", - ); - return { - ...actual, - enqueueSystemEvent: (...args: unknown[]) => reactionQueueMock(...args), - }; -} - -vi.mock("openclaw/plugin-sdk/infra-runtime", createChannelRuntimeMock); -vi.mock("openclaw/plugin-sdk/infra-runtime.js", createChannelRuntimeMock); +vi.mock("openclaw/plugin-sdk/infra-runtime", () => ({ + enqueueSystemEvent: (...args: unknown[]) => reactionQueueMock(...args), +})); +vi.mock("openclaw/plugin-sdk/infra-runtime.js", () => ({ + enqueueSystemEvent: (...args: unknown[]) => reactionQueueMock(...args), +})); +vi.mock("openclaw/plugin-sdk/security-runtime", () => ({ + readStoreAllowFromForDmPolicy: async () => [], +})); type ReactionHandler = (args: { event: Record; body: unknown }) => Promise;