mirror of https://github.com/openclaw/openclaw.git
66 lines
1.6 KiB
TypeScript
66 lines
1.6 KiB
TypeScript
import { vi } from "vitest";
|
|
import type { FollowupRun } from "./queue.js";
|
|
import type { TypingController } from "./typing.js";
|
|
|
|
export function createMockTypingController(
|
|
overrides: Partial<TypingController> = {},
|
|
): TypingController {
|
|
return {
|
|
onReplyStart: vi.fn(async () => {}),
|
|
startTypingLoop: vi.fn(async () => {}),
|
|
startTypingOnText: vi.fn(async () => {}),
|
|
refreshTypingTtl: vi.fn(),
|
|
isActive: vi.fn(() => false),
|
|
markRunComplete: vi.fn(),
|
|
markDispatchIdle: vi.fn(),
|
|
cleanup: vi.fn(),
|
|
...overrides,
|
|
};
|
|
}
|
|
|
|
export function createMockFollowupRun(
|
|
overrides: Partial<Omit<FollowupRun, "run">> & { run?: Partial<FollowupRun["run"]> } = {},
|
|
): FollowupRun {
|
|
const base: FollowupRun = {
|
|
prompt: "hello",
|
|
summaryLine: "hello",
|
|
enqueuedAt: Date.now(),
|
|
originatingTo: "channel:C1",
|
|
run: {
|
|
agentId: "agent",
|
|
agentDir: "/tmp/agent",
|
|
sessionId: "session",
|
|
sessionKey: "main",
|
|
messageProvider: "whatsapp",
|
|
agentAccountId: "primary",
|
|
sessionFile: "/tmp/session.jsonl",
|
|
workspaceDir: "/tmp",
|
|
config: {},
|
|
skillsSnapshot: {
|
|
prompt: "",
|
|
skills: [],
|
|
},
|
|
provider: "anthropic",
|
|
model: "claude",
|
|
thinkLevel: "low",
|
|
verboseLevel: "off",
|
|
elevatedLevel: "off",
|
|
bashElevated: {
|
|
enabled: false,
|
|
allowed: false,
|
|
defaultLevel: "off",
|
|
},
|
|
timeoutMs: 1_000,
|
|
blockReplyBreak: "message_end",
|
|
},
|
|
};
|
|
return {
|
|
...base,
|
|
...overrides,
|
|
run: {
|
|
...base.run,
|
|
...overrides.run,
|
|
},
|
|
};
|
|
}
|