* Channels: stabilize lane harness regressions * Signal tests: stabilize tool-result harness dispatch * Telegram tests: harden polling restart assertions * Discord tests: stabilize channel lane harness coverage * Slack tests: align slash harness runtime mocks * Telegram tests: harden dispatch and pairing scenarios * Telegram tests: fix SessionEntry typing in bot callback override case * Slack tests: avoid slash runtime mock deadlock * Tests: address bot review follow-ups * Discord: restore accounts runtime-api seam * Tests: stabilize Discord and Telegram channel harness assertions * Tests: clarify Discord mock seam and remove unused Telegram import * changelog Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com> --------- Signed-off-by: joshavant <830519+joshavant@users.noreply.github.com>
60 lines
2.0 KiB
TypeScript
60 lines
2.0 KiB
TypeScript
import type { MockFn } from "openclaw/plugin-sdk/testing";
|
|
import { vi } from "vitest";
|
|
|
|
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", async (importOriginal) => {
|
|
const actual = await importOriginal<typeof import("./send.js")>();
|
|
return {
|
|
...actual,
|
|
sendMessageDiscord: (...args: unknown[]) => sendMock(...args),
|
|
reactMessageDiscord: async (...args: unknown[]) => {
|
|
reactMock(...args);
|
|
},
|
|
};
|
|
});
|
|
|
|
vi.mock("openclaw/plugin-sdk/reply-runtime", async (importOriginal) => {
|
|
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/reply-runtime")>();
|
|
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("openclaw/plugin-sdk/conversation-runtime", async (importOriginal) => {
|
|
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/conversation-runtime")>();
|
|
return {
|
|
...actual,
|
|
...createPairingStoreMocks(),
|
|
};
|
|
});
|
|
|
|
vi.mock("openclaw/plugin-sdk/config-runtime", async (importOriginal) => {
|
|
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/config-runtime")>();
|
|
return {
|
|
...actual,
|
|
resolveStorePath: vi.fn(() => "/tmp/openclaw-sessions.json"),
|
|
updateLastRoute: (...args: unknown[]) => updateLastRouteMock(...args),
|
|
resolveSessionKey: vi.fn(),
|
|
};
|
|
});
|