From 83fe8efe3dd35baf8328ec0123daeece9e81a6e1 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 4 Apr 2026 15:30:03 +0100 Subject: [PATCH] fix(test): isolate ollama runtime test seams --- src/agents/ollama-stream.test.ts | 27 ++++++++++++++++--- .../pi-embedded-runner-extraparams.test.ts | 14 +++++----- .../pi-embedded-runner/run/attempt.test.ts | 4 +-- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/src/agents/ollama-stream.test.ts b/src/agents/ollama-stream.test.ts index 122a6452f1f..9566b657a82 100644 --- a/src/agents/ollama-stream.test.ts +++ b/src/agents/ollama-stream.test.ts @@ -1,14 +1,35 @@ -import { describe, expect, it, vi } from "vitest"; +import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { buildOllamaChatRequest, + createConfiguredOllamaCompatStreamWrapper, createConfiguredOllamaStreamFn, createOllamaStreamFn, convertToOllamaMessages, buildAssistantMessage, parseNdjsonStream, resolveOllamaBaseUrlForRun, -} from "../plugin-sdk/ollama.js"; -import { applyExtraParamsToAgent } from "./pi-embedded-runner/extra-params.js"; +} from "../../extensions/ollama/runtime-api.js"; +import { + __testing as extraParamsTesting, + applyExtraParamsToAgent, +} from "./pi-embedded-runner/extra-params.js"; + +beforeEach(() => { + extraParamsTesting.setProviderRuntimeDepsForTest({ + prepareProviderExtraParams: ({ context }) => context.extraParams, + wrapProviderStreamFn: ({ provider, context }) => + provider === "ollama" + ? createConfiguredOllamaCompatStreamWrapper({ + ...context, + provider, + }) + : context.streamFn, + }); +}); + +afterEach(() => { + extraParamsTesting.resetProviderRuntimeDepsForTest(); +}); describe("buildOllamaChatRequest", () => { it("omits tools when none are provided", () => { diff --git a/src/agents/pi-embedded-runner-extraparams.test.ts b/src/agents/pi-embedded-runner-extraparams.test.ts index 55b99f67fd5..4b799356592 100644 --- a/src/agents/pi-embedded-runner-extraparams.test.ts +++ b/src/agents/pi-embedded-runner-extraparams.test.ts @@ -1,6 +1,7 @@ import type { StreamFn } from "@mariozechner/pi-agent-core"; import type { Context, Model, SimpleStreamOptions } from "@mariozechner/pi-ai"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; +import { createConfiguredOllamaCompatNumCtxWrapper } from "../../extensions/ollama/runtime-api.js"; import { createAnthropicBetaHeadersWrapper, createAnthropicFastModeWrapper, @@ -9,7 +10,6 @@ import { resolveAnthropicFastMode, resolveAnthropicServiceTier, } from "../../test/helpers/providers/anthropic-contract.js"; -import { createConfiguredOllamaCompatNumCtxWrapper } from "../plugin-sdk/ollama.js"; import { __testing as extraParamsTesting } from "./pi-embedded-runner/extra-params.js"; import { createOpenRouterSystemCacheWrapper, @@ -48,17 +48,17 @@ function createTestXaiFastModeWrapper( }; } -import { - applyExtraParamsToAgent, - resolveAgentTransportOverride, - resolveExtraParams, - resolvePreparedExtraParams, -} from "./pi-embedded-runner.js"; import { createAnthropicToolPayloadCompatibilityWrapper } from "./pi-embedded-runner/anthropic-family-tool-payload-compat.js"; import { createBedrockNoCacheWrapper, isAnthropicBedrockModel, } from "./pi-embedded-runner/bedrock-stream-wrappers.js"; +import { + applyExtraParamsToAgent, + resolveAgentTransportOverride, + resolveExtraParams, + resolvePreparedExtraParams, +} from "./pi-embedded-runner/extra-params.js"; import { createGoogleThinkingPayloadWrapper } from "./pi-embedded-runner/google-stream-wrappers.js"; import { log } from "./pi-embedded-runner/logger.js"; import { createMinimaxFastModeWrapper } from "./pi-embedded-runner/minimax-stream-wrappers.js"; diff --git a/src/agents/pi-embedded-runner/run/attempt.test.ts b/src/agents/pi-embedded-runner/run/attempt.test.ts index 63d9dff1876..b48149a1a25 100644 --- a/src/agents/pi-embedded-runner/run/attempt.test.ts +++ b/src/agents/pi-embedded-runner/run/attempt.test.ts @@ -1,12 +1,12 @@ import { streamSimple } from "@mariozechner/pi-ai"; import { describe, expect, it, vi } from "vitest"; -import type { OpenClawConfig } from "../../../config/config.js"; import { isOllamaCompatProvider, resolveOllamaCompatNumCtxEnabled, shouldInjectOllamaCompatNumCtx, wrapOllamaCompatNumCtx, -} from "../../../plugin-sdk/ollama.js"; +} from "../../../../extensions/ollama/runtime-api.js"; +import type { OpenClawConfig } from "../../../config/config.js"; import { appendBootstrapPromptWarning } from "../../bootstrap-budget.js"; import { SYSTEM_PROMPT_CACHE_BOUNDARY } from "../../system-prompt-cache-boundary.js"; import { buildAgentSystemPrompt } from "../../system-prompt.js";