refactor(reply-tests): share harness mock bundle

This commit is contained in:
Sebastian
2026-02-15 11:44:32 -05:00
parent 2da512e24d
commit 10feda100e
3 changed files with 33 additions and 15 deletions

View File

@@ -39,19 +39,21 @@ export function installRunReplyAgentTypingHeartbeatTestHooks() {
});
}
async function loadHarnessMocks() {
const { loadAgentRunnerHarnessMockBundle } = await import("./agent-runner.test-harness.mocks.js");
return await loadAgentRunnerHarnessMockBundle(state);
}
vi.mock("../../agents/model-fallback.js", async () => {
const { modelFallbackMockFactory } = await import("./agent-runner.test-harness.mocks.js");
return modelFallbackMockFactory();
return (await loadHarnessMocks()).modelFallback;
});
vi.mock("../../agents/pi-embedded.js", async () => {
const { embeddedPiMockFactory } = await import("./agent-runner.test-harness.mocks.js");
return embeddedPiMockFactory(state);
return (await loadHarnessMocks()).embeddedPi;
});
vi.mock("./queue.js", async () => {
const { queueMockFactory } = await import("./agent-runner.test-harness.mocks.js");
return await queueMockFactory();
return (await loadHarnessMocks()).queue;
});
export function createMinimalRun(params?: {

View File

@@ -30,9 +30,13 @@ export function getRunCliAgentMock(): AnyMock {
export type { EmbeddedRunParams };
async function loadHarnessMocks() {
const { loadAgentRunnerHarnessMockBundle } = await import("./agent-runner.test-harness.mocks.js");
return await loadAgentRunnerHarnessMockBundle(state);
}
vi.mock("../../agents/model-fallback.js", async () => {
const { modelFallbackMockFactory } = await import("./agent-runner.test-harness.mocks.js");
return modelFallbackMockFactory();
return (await loadHarnessMocks()).modelFallback;
});
vi.mock("../../agents/cli-runner.js", () => ({
@@ -40,13 +44,11 @@ vi.mock("../../agents/cli-runner.js", () => ({
}));
vi.mock("../../agents/pi-embedded.js", async () => {
const { embeddedPiMockFactory } = await import("./agent-runner.test-harness.mocks.js");
return embeddedPiMockFactory(state);
return (await loadHarnessMocks()).embeddedPi;
});
vi.mock("./queue.js", async () => {
const { queueMockFactory } = await import("./agent-runner.test-harness.mocks.js");
return await queueMockFactory();
return (await loadHarnessMocks()).queue;
});
export async function seedSessionStore(params: {

View File

@@ -1,5 +1,9 @@
import { vi } from "vitest";
export type AgentRunnerEmbeddedState = {
runEmbeddedPiAgentMock: (params: unknown) => unknown;
};
export function modelFallbackMockFactory(): Record<string, unknown> {
return {
runWithModelFallback: async ({
@@ -18,9 +22,7 @@ export function modelFallbackMockFactory(): Record<string, unknown> {
};
}
export function embeddedPiMockFactory(state: {
runEmbeddedPiAgentMock: (params: unknown) => unknown;
}): Record<string, unknown> {
export function embeddedPiMockFactory(state: AgentRunnerEmbeddedState): Record<string, unknown> {
return {
queueEmbeddedPiMessage: vi.fn().mockReturnValue(false),
runEmbeddedPiAgent: (params: unknown) => state.runEmbeddedPiAgentMock(params),
@@ -35,3 +37,15 @@ export async function queueMockFactory(): Promise<Record<string, unknown>> {
scheduleFollowupDrain: vi.fn(),
};
}
export async function loadAgentRunnerHarnessMockBundle(state: AgentRunnerEmbeddedState): Promise<{
modelFallback: Record<string, unknown>;
embeddedPi: Record<string, unknown>;
queue: Record<string, unknown>;
}> {
return {
modelFallback: modelFallbackMockFactory(),
embeddedPi: embeddedPiMockFactory(state),
queue: await queueMockFactory(),
};
}