import { vi } from "vitest"; import type { MockFn } from "../../../src/test-utils/vitest-mock-fn.js"; export const sendMock: MockFn = vi.fn(); export const reactMock: MockFn = vi.fn(); export const updateLastRouteMock: MockFn = vi.fn(); export const dispatchMock: MockFn = vi.fn(); export const readAllowFromStoreMock: MockFn = vi.fn(); export const upsertPairingRequestMock: MockFn = vi.fn(); vi.mock("./send.js", () => ({ sendMessageDiscord: (...args: unknown[]) => sendMock(...args), reactMessageDiscord: async (...args: unknown[]) => { reactMock(...args); }, })); vi.mock("../../../src/auto-reply/dispatch.js", async (importOriginal) => { const actual = await importOriginal(); return { ...actual, dispatchInboundMessage: (...args: unknown[]) => dispatchMock(...args), dispatchInboundMessageWithDispatcher: (...args: unknown[]) => dispatchMock(...args), dispatchInboundMessageWithBufferedDispatcher: (...args: unknown[]) => dispatchMock(...args), }; }); function createPairingStoreMocks() { return { readChannelAllowFromStore(...args: unknown[]) { return readAllowFromStoreMock(...args); }, upsertChannelPairingRequest(...args: unknown[]) { return upsertPairingRequestMock(...args); }, }; } vi.mock("../../../src/pairing/pairing-store.js", () => createPairingStoreMocks()); vi.mock("../../../src/config/sessions.js", async (importOriginal) => { const actual = await importOriginal(); return { ...actual, resolveStorePath: vi.fn(() => "/tmp/remoteclaw-sessions.json"), updateLastRoute: (...args: unknown[]) => updateLastRouteMock(...args), resolveSessionKey: vi.fn(), }; });