mirror of
https://github.com/farcasclaudiu/openclaw.git
synced 2026-06-28 19:01:47 +03:00
refactor(test): dedupe web auto-reply last-route test
This commit is contained in:
@@ -8,6 +8,43 @@ import { createEchoTracker } from "./auto-reply/monitor/echo.js";
|
|||||||
import { awaitBackgroundTasks } from "./auto-reply/monitor/last-route.js";
|
import { awaitBackgroundTasks } from "./auto-reply/monitor/last-route.js";
|
||||||
import { createWebOnMessageHandler } from "./auto-reply/monitor/on-message.js";
|
import { createWebOnMessageHandler } from "./auto-reply/monitor/on-message.js";
|
||||||
|
|
||||||
|
function makeCfg(storePath: string): OpenClawConfig {
|
||||||
|
return {
|
||||||
|
channels: { whatsapp: { allowFrom: ["*"] } },
|
||||||
|
session: { store: storePath },
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function makeReplyLogger() {
|
||||||
|
return {
|
||||||
|
warn: vi.fn(),
|
||||||
|
info: vi.fn(),
|
||||||
|
debug: vi.fn(),
|
||||||
|
error: vi.fn(),
|
||||||
|
} as unknown as Parameters<typeof createWebOnMessageHandler>[0]["replyLogger"];
|
||||||
|
}
|
||||||
|
|
||||||
|
function createHandlerForTest(opts: { cfg: OpenClawConfig; replyResolver: unknown }) {
|
||||||
|
const backgroundTasks = new Set<Promise<unknown>>();
|
||||||
|
const handler = createWebOnMessageHandler({
|
||||||
|
cfg: opts.cfg,
|
||||||
|
verbose: false,
|
||||||
|
connectionId: "test",
|
||||||
|
maxMediaBytes: 1024,
|
||||||
|
groupHistoryLimit: 3,
|
||||||
|
groupHistories: new Map(),
|
||||||
|
groupMemberNames: new Map(),
|
||||||
|
echoTracker: createEchoTracker({ maxItems: 10 }),
|
||||||
|
backgroundTasks,
|
||||||
|
replyResolver: opts.replyResolver,
|
||||||
|
replyLogger: makeReplyLogger(),
|
||||||
|
baseMentionConfig: buildMentionConfig(opts.cfg),
|
||||||
|
account: {},
|
||||||
|
});
|
||||||
|
|
||||||
|
return { handler, backgroundTasks };
|
||||||
|
}
|
||||||
|
|
||||||
describe("web auto-reply last-route", () => {
|
describe("web auto-reply last-route", () => {
|
||||||
installWebAutoReplyUnitTestHooks();
|
installWebAutoReplyUnitTestHooks();
|
||||||
|
|
||||||
@@ -19,33 +56,8 @@ describe("web auto-reply last-route", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const replyResolver = vi.fn().mockResolvedValue(undefined);
|
const replyResolver = vi.fn().mockResolvedValue(undefined);
|
||||||
|
const cfg = makeCfg(store.storePath);
|
||||||
const mockConfig: OpenClawConfig = {
|
const { handler, backgroundTasks } = createHandlerForTest({ cfg, replyResolver });
|
||||||
channels: { whatsapp: { allowFrom: ["*"] } },
|
|
||||||
session: { store: store.storePath },
|
|
||||||
};
|
|
||||||
|
|
||||||
const backgroundTasks = new Set<Promise<unknown>>();
|
|
||||||
const handler = createWebOnMessageHandler({
|
|
||||||
cfg: mockConfig,
|
|
||||||
verbose: false,
|
|
||||||
connectionId: "test",
|
|
||||||
maxMediaBytes: 1024,
|
|
||||||
groupHistoryLimit: 3,
|
|
||||||
groupHistories: new Map(),
|
|
||||||
groupMemberNames: new Map(),
|
|
||||||
echoTracker: createEchoTracker({ maxItems: 10 }),
|
|
||||||
backgroundTasks,
|
|
||||||
replyResolver,
|
|
||||||
replyLogger: {
|
|
||||||
warn: vi.fn(),
|
|
||||||
info: vi.fn(),
|
|
||||||
debug: vi.fn(),
|
|
||||||
error: vi.fn(),
|
|
||||||
} as unknown as Parameters<typeof createWebOnMessageHandler>[0]["replyLogger"],
|
|
||||||
baseMentionConfig: buildMentionConfig(mockConfig),
|
|
||||||
account: {},
|
|
||||||
});
|
|
||||||
|
|
||||||
await handler({
|
await handler({
|
||||||
id: "m1",
|
id: "m1",
|
||||||
@@ -81,33 +93,8 @@ describe("web auto-reply last-route", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const replyResolver = vi.fn().mockResolvedValue(undefined);
|
const replyResolver = vi.fn().mockResolvedValue(undefined);
|
||||||
|
const cfg = makeCfg(store.storePath);
|
||||||
const mockConfig: OpenClawConfig = {
|
const { handler, backgroundTasks } = createHandlerForTest({ cfg, replyResolver });
|
||||||
channels: { whatsapp: { allowFrom: ["*"] } },
|
|
||||||
session: { store: store.storePath },
|
|
||||||
};
|
|
||||||
|
|
||||||
const backgroundTasks = new Set<Promise<unknown>>();
|
|
||||||
const handler = createWebOnMessageHandler({
|
|
||||||
cfg: mockConfig,
|
|
||||||
verbose: false,
|
|
||||||
connectionId: "test",
|
|
||||||
maxMediaBytes: 1024,
|
|
||||||
groupHistoryLimit: 3,
|
|
||||||
groupHistories: new Map(),
|
|
||||||
groupMemberNames: new Map(),
|
|
||||||
echoTracker: createEchoTracker({ maxItems: 10 }),
|
|
||||||
backgroundTasks,
|
|
||||||
replyResolver,
|
|
||||||
replyLogger: {
|
|
||||||
warn: vi.fn(),
|
|
||||||
info: vi.fn(),
|
|
||||||
debug: vi.fn(),
|
|
||||||
error: vi.fn(),
|
|
||||||
} as unknown as Parameters<typeof createWebOnMessageHandler>[0]["replyLogger"],
|
|
||||||
baseMentionConfig: buildMentionConfig(mockConfig),
|
|
||||||
account: {},
|
|
||||||
});
|
|
||||||
|
|
||||||
await handler({
|
await handler({
|
||||||
id: "g1",
|
id: "g1",
|
||||||
|
|||||||
Reference in New Issue
Block a user