test(discord): stabilize tool-result reply tests

This commit is contained in:
Peter Steinberger
2026-03-22 04:07:06 +00:00
parent 7ac312b8fe
commit 4c9f411f6d
2 changed files with 9 additions and 2 deletions

View File

@@ -3,6 +3,7 @@ import { ChannelType, MessageType } from "@buape/carbon";
import { beforeEach, describe, expect, it, vi } from "vitest";
import {
dispatchMock,
loadConfigMock,
readAllowFromStoreMock,
sendMock,
updateLastRouteMock,
@@ -24,6 +25,7 @@ beforeEach(() => {
});
readAllowFromStoreMock.mockClear().mockResolvedValue([]);
upsertPairingRequestMock.mockClear().mockResolvedValue({ code: "PAIRCODE", created: true });
loadConfigMock.mockClear().mockReturnValue(BASE_CFG);
});
const BASE_CFG: Config = {
@@ -80,6 +82,7 @@ function createHandlerBaseConfig(
}
async function createDmHandler(opts: { cfg: Config; runtimeError?: (err: unknown) => void }) {
loadConfigMock.mockReturnValue(opts.cfg);
return createDiscordMessageHandler(createHandlerBaseConfig(opts.cfg, opts.runtimeError));
}
@@ -92,9 +95,10 @@ function createDmClient() {
} as unknown as Client;
}
async function createCategoryGuildHandler() {
async function createCategoryGuildHandler(runtimeError?: (err: unknown) => void) {
loadConfigMock.mockReturnValue(CATEGORY_GUILD_CFG);
return createDiscordMessageHandler({
...createHandlerBaseConfig(CATEGORY_GUILD_CFG),
...createHandlerBaseConfig(CATEGORY_GUILD_CFG, runtimeError),
guildEntries: {
"*": { requireMention: false, channels: { c1: { allow: true } } },
},

View File

@@ -7,6 +7,7 @@ export const updateLastRouteMock: MockFn = vi.fn();
export const dispatchMock: MockFn = vi.fn();
export const readAllowFromStoreMock: MockFn = vi.fn();
export const upsertPairingRequestMock: MockFn = vi.fn();
export const loadConfigMock: MockFn = vi.fn();
vi.mock("./send.js", async (importOriginal) => {
const actual = await importOriginal<typeof import("./send.js")>();
@@ -52,6 +53,8 @@ vi.mock("openclaw/plugin-sdk/config-runtime", async (importOriginal) => {
const actual = await importOriginal<typeof import("openclaw/plugin-sdk/config-runtime")>();
return {
...actual,
loadConfig: (...args: unknown[]) => loadConfigMock(...args),
readSessionUpdatedAt: vi.fn(() => undefined),
resolveStorePath: vi.fn(() => "/tmp/openclaw-sessions.json"),
updateLastRoute: (...args: unknown[]) => updateLastRouteMock(...args),
resolveSessionKey: vi.fn(),