50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { vi } from "vitest";
|
|
|
|
vi.mock("../agents/pi-embedded.js", () => ({
|
|
abortEmbeddedPiRun: vi.fn().mockReturnValue(false),
|
|
runEmbeddedPiAgent: vi.fn(),
|
|
resolveEmbeddedSessionLane: (key: string) => `session:${key.trim() || "main"}`,
|
|
}));
|
|
|
|
vi.mock("../agents/model-catalog.js", () => ({
|
|
loadModelCatalog: vi.fn(),
|
|
}));
|
|
|
|
vi.mock("../agents/model-selection.js", async (importOriginal) => {
|
|
const actual = await importOriginal<typeof import("../agents/model-selection.js")>();
|
|
return {
|
|
...actual,
|
|
isCliProvider: vi.fn(() => false),
|
|
};
|
|
});
|
|
|
|
vi.mock("../agents/subagent-announce.js", () => ({
|
|
runSubagentAnnounceFlow: vi.fn(),
|
|
}));
|
|
|
|
type LooseRecord = Record<string, unknown>;
|
|
|
|
export function makeIsolatedAgentJob(overrides?: LooseRecord) {
|
|
return {
|
|
id: "test-job",
|
|
name: "Test Job",
|
|
schedule: { kind: "cron", expr: "0 9 * * *", tz: "UTC" },
|
|
sessionTarget: "isolated",
|
|
payload: { kind: "agentTurn", message: "test" },
|
|
...overrides,
|
|
} as never;
|
|
}
|
|
|
|
export function makeIsolatedAgentParams(overrides?: LooseRecord) {
|
|
const jobOverrides =
|
|
overrides && "job" in overrides ? (overrides.job as LooseRecord | undefined) : undefined;
|
|
return {
|
|
cfg: {},
|
|
deps: {} as never,
|
|
job: makeIsolatedAgentJob(jobOverrides),
|
|
message: "test",
|
|
sessionKey: "cron:test",
|
|
...overrides,
|
|
};
|
|
}
|