From 03d042d2b9f354f39c7c4a625ccf83f7a87967fd Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Mon, 13 Apr 2026 01:35:52 +0100 Subject: [PATCH] perf: mock hot agents import tests --- ...tra-params.cache-retention-default.test.ts | 9 +++ .../extra-params.google.test.ts | 9 +++ .../extra-params.ollama.test.ts | 9 +++ .../extra-params.test-support.ts | 10 +++ src/agents/tools/music-generate-tool.test.ts | 81 +++++++++++++++++++ 5 files changed, 118 insertions(+) diff --git a/src/agents/pi-embedded-runner/extra-params.cache-retention-default.test.ts b/src/agents/pi-embedded-runner/extra-params.cache-retention-default.test.ts index 610239cca2e..01888ad65b7 100644 --- a/src/agents/pi-embedded-runner/extra-params.cache-retention-default.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.cache-retention-default.test.ts @@ -4,6 +4,15 @@ import { isOpenRouterAnthropicModelRef } from "./anthropic-family-cache-semantic import { __testing as extraParamsTesting, applyExtraParamsToAgent } from "./extra-params.js"; import { resolveCacheRetention } from "./prompt-cache-retention.js"; +vi.mock("../../plugins/provider-runtime.js", () => ({ + prepareProviderExtraParams: ({ + context, + }: { + context: { extraParams: Record }; + }) => context.extraParams, + wrapProviderStreamFn: () => undefined, +})); + function applyAndExpectWrapped(params: { cfg?: Parameters[1]; extraParamsOverride?: Parameters[4]; diff --git a/src/agents/pi-embedded-runner/extra-params.google.test.ts b/src/agents/pi-embedded-runner/extra-params.google.test.ts index 92a2356d5f9..486c6de004f 100644 --- a/src/agents/pi-embedded-runner/extra-params.google.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.google.test.ts @@ -4,6 +4,15 @@ import { createPiAiStreamSimpleMock } from "../../../test/helpers/agents/pi-ai-s import { __testing as extraParamsTesting } from "./extra-params.js"; import { runExtraParamsCase } from "./extra-params.test-support.js"; +vi.mock("../../plugins/provider-runtime.js", () => ({ + prepareProviderExtraParams: ({ + context, + }: { + context: { extraParams: Record }; + }) => context.extraParams, + wrapProviderStreamFn: () => undefined, +})); + vi.mock("@mariozechner/pi-ai", async () => createPiAiStreamSimpleMock(() => vi.importActual("@mariozechner/pi-ai"), diff --git a/src/agents/pi-embedded-runner/extra-params.ollama.test.ts b/src/agents/pi-embedded-runner/extra-params.ollama.test.ts index 7a29bc62e4e..6a30e7b0108 100644 --- a/src/agents/pi-embedded-runner/extra-params.ollama.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.ollama.test.ts @@ -3,6 +3,15 @@ import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { __testing as extraParamsTesting } from "./extra-params.js"; import { runExtraParamsCase } from "./extra-params.test-support.js"; +vi.mock("../../plugins/provider-runtime.js", () => ({ + prepareProviderExtraParams: ({ + context, + }: { + context: { extraParams: Record }; + }) => context.extraParams, + wrapProviderStreamFn: () => undefined, +})); + vi.mock("@mariozechner/pi-ai", async () => { const original = await vi.importActual("@mariozechner/pi-ai"); diff --git a/src/agents/pi-embedded-runner/extra-params.test-support.ts b/src/agents/pi-embedded-runner/extra-params.test-support.ts index 93a82e6ea86..cce8028b8f3 100644 --- a/src/agents/pi-embedded-runner/extra-params.test-support.ts +++ b/src/agents/pi-embedded-runner/extra-params.test-support.ts @@ -1,9 +1,19 @@ import type { StreamFn } from "@mariozechner/pi-agent-core"; import type { Context, Model, SimpleStreamOptions } from "@mariozechner/pi-ai"; +import { vi } from "vitest"; import type { ThinkLevel } from "../../auto-reply/thinking.shared.js"; import type { OpenClawConfig } from "../../config/types.openclaw.js"; import { __testing as extraParamsTesting, applyExtraParamsToAgent } from "./extra-params.js"; +vi.mock("../../plugins/provider-runtime.js", () => ({ + prepareProviderExtraParams: ({ + context, + }: { + context: { extraParams: Record }; + }) => context.extraParams, + wrapProviderStreamFn: () => undefined, +})); + export type ExtraParamsCapture> = { headers?: Record; options?: SimpleStreamOptions; diff --git a/src/agents/tools/music-generate-tool.test.ts b/src/agents/tools/music-generate-tool.test.ts index 2bb79692ec6..be0b33f99c3 100644 --- a/src/agents/tools/music-generate-tool.test.ts +++ b/src/agents/tools/music-generate-tool.test.ts @@ -16,6 +16,87 @@ const taskExecutorMocks = vi.hoisted(() => ({ recordTaskRunProgressByRunId: vi.fn(), })); +const configMocks = vi.hoisted(() => ({ + loadConfig: vi.fn(() => ({})), +})); + +const mediaStoreMocks = vi.hoisted(() => ({ + saveMediaBuffer: vi.fn(), +})); + +const musicGenerationRuntimeMocks = vi.hoisted(() => ({ + generateMusic: vi.fn(), + listRuntimeMusicGenerationProviders: vi.fn(), +})); + +const musicGenerateBackgroundMocks = vi.hoisted(() => ({ + completeMusicGenerationTaskRun: vi.fn((params) => { + if (!params.handle) { + return; + } + taskExecutorMocks.completeTaskRunByRunId({ + runId: params.handle.runId, + runtime: "cli", + sessionKey: params.handle.requesterSessionKey, + }); + }), + createMusicGenerationTaskRun: vi.fn((params) => { + const sessionKey = params.sessionKey?.trim(); + if (!sessionKey) { + return null; + } + const runId = "tool:music_generate:test-run"; + const task = taskExecutorMocks.createRunningTaskRun({ + runId, + runtime: "cli", + requesterSessionKey: sessionKey, + ownerKey: sessionKey, + scopeKind: "session", + task: params.prompt, + deliveryStatus: "not_applicable", + notifyPolicy: "silent", + createdAt: Date.now(), + }); + return { + taskId: task.taskId, + runId, + requesterSessionKey: sessionKey, + requesterOrigin: params.requesterOrigin, + taskLabel: params.prompt, + }; + }), + failMusicGenerationTaskRun: vi.fn((params) => { + if (!params.handle) { + return; + } + taskExecutorMocks.failTaskRunByRunId({ + runId: params.handle.runId, + runtime: "cli", + sessionKey: params.handle.requesterSessionKey, + }); + }), + recordMusicGenerationTaskProgress: vi.fn((params) => { + if (!params.handle) { + return; + } + taskExecutorMocks.recordTaskRunProgressByRunId({ + runId: params.handle.runId, + runtime: "cli", + sessionKey: params.handle.requesterSessionKey, + progressSummary: params.progressSummary, + eventSummary: params.eventSummary, + }); + }), + wakeMusicGenerationTaskCompletion: vi.fn(), +})); + +vi.mock("../../config/config.js", () => configMocks); +vi.mock("../../media/store.js", () => mediaStoreMocks); +vi.mock("../../media/web-media.js", () => ({ + loadWebMedia: vi.fn(), +})); +vi.mock("../../music-generation/runtime.js", () => musicGenerationRuntimeMocks); +vi.mock("./music-generate-background.js", () => musicGenerateBackgroundMocks); vi.mock("../../tasks/runtime-internal.js", () => taskRuntimeInternalMocks); vi.mock("../../tasks/task-executor.js", () => taskExecutorMocks);