Update models-config.providers.ollama.test.ts

This commit is contained in:
Vincent Koc
2026-02-28 10:14:24 -08:00
parent b8863fc813
commit 8624f80649

View File

@@ -196,11 +196,12 @@ describe("Ollama provider", () => {
expect(mockOllamaModel).not.toHaveProperty("params"); expect(mockOllamaModel).not.toHaveProperty("params");
}); });
it("should skip discovery when explicit models are configured", async () => { it("should skip discovery fetch when explicit models are configured", async () => {
const agentDir = mkdtempSync(join(tmpdir(), "openclaw-test-")); const agentDir = mkdtempSync(join(tmpdir(), "openclaw-test-"));
process.env.OLLAMA_API_KEY = "test-key"; vi.stubEnv("VITEST", "");
vi.stubEnv("NODE_ENV", "development");
try { const fetchMock = vi.fn();
vi.stubGlobal("fetch", fetchMock);
const explicitModels: ModelDefinitionConfig[] = [ const explicitModels: ModelDefinitionConfig[] = [
{ {
id: "gpt-oss:20b", id: "gpt-oss:20b",
@@ -217,52 +218,35 @@ describe("Ollama provider", () => {
agentDir, agentDir,
explicitProviders: { explicitProviders: {
ollama: { ollama: {
baseUrl: "http://remote-ollama:11434", baseUrl: "http://remote-ollama:11434/v1",
api: "ollama",
models: explicitModels, models: explicitModels,
apiKey: "config-ollama-key",
}, },
}, },
}); });
// Should use explicit models, not run discovery expect(fetchMock).not.toHaveBeenCalled();
expect(providers?.ollama?.models).toEqual(explicitModels); expect(providers?.ollama?.models).toEqual(explicitModels);
expect(providers?.ollama?.baseUrl).toBe("http://remote-ollama:11434"); expect(providers?.ollama?.baseUrl).toBe("http://remote-ollama:11434");
} finally { expect(providers?.ollama?.api).toBe("ollama");
delete process.env.OLLAMA_API_KEY; expect(providers?.ollama?.apiKey).toBe("config-ollama-key");
}
}); });
it("should default api to ollama when explicit models omit provider api", async () => { it("should preserve explicit apiKey when discovery path has no models and no env key", async () => {
const agentDir = mkdtempSync(join(tmpdir(), "openclaw-test-")); const agentDir = mkdtempSync(join(tmpdir(), "openclaw-test-"));
process.env.OLLAMA_API_KEY = "test-key";
try {
const explicitModels: ModelDefinitionConfig[] = [
{
id: "gpt-oss:20b",
name: "GPT-OSS 20B",
reasoning: false,
input: ["text"] as Array<"text" | "image">,
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 8192,
maxTokens: 81920,
},
];
const providers = await resolveImplicitProviders({ const providers = await resolveImplicitProviders({
agentDir, agentDir,
explicitProviders: { explicitProviders: {
ollama: { ollama: {
baseUrl: "http://remote-ollama:11434", baseUrl: "http://remote-ollama:11434/v1",
models: explicitModels, api: "openai-completions",
models: [],
apiKey: "config-ollama-key",
}, },
}, },
}); });
expect(providers?.ollama?.api).toBe("ollama"); expect(providers?.ollama?.apiKey).toBe("config-ollama-key");
expect(providers?.ollama?.models).toEqual(explicitModels);
} finally {
delete process.env.OLLAMA_API_KEY;
}
}); });
}); });