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,73 +196,57 @@ 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");
const fetchMock = vi.fn();
vi.stubGlobal("fetch", fetchMock);
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,
},
];
try { const providers = await resolveImplicitProviders({
const explicitModels: ModelDefinitionConfig[] = [ agentDir,
{ explicitProviders: {
id: "gpt-oss:20b", ollama: {
name: "GPT-OSS 20B", baseUrl: "http://remote-ollama:11434/v1",
reasoning: false, models: explicitModels,
input: ["text"] as Array<"text" | "image">, apiKey: "config-ollama-key",
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
contextWindow: 8192,
maxTokens: 81920,
}, },
]; },
});
const providers = await resolveImplicitProviders({ expect(fetchMock).not.toHaveBeenCalled();
agentDir, expect(providers?.ollama?.models).toEqual(explicitModels);
explicitProviders: { expect(providers?.ollama?.baseUrl).toBe("http://remote-ollama:11434");
ollama: { expect(providers?.ollama?.api).toBe("ollama");
baseUrl: "http://remote-ollama:11434", expect(providers?.ollama?.apiKey).toBe("config-ollama-key");
api: "ollama",
models: explicitModels,
},
},
});
// Should use explicit models, not run discovery
expect(providers?.ollama?.models).toEqual(explicitModels);
expect(providers?.ollama?.baseUrl).toBe("http://remote-ollama:11434");
} finally {
delete process.env.OLLAMA_API_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 providers = await resolveImplicitProviders({
const explicitModels: ModelDefinitionConfig[] = [ agentDir,
{ explicitProviders: {
id: "gpt-oss:20b", ollama: {
name: "GPT-OSS 20B", baseUrl: "http://remote-ollama:11434/v1",
reasoning: false, api: "openai-completions",
input: ["text"] as Array<"text" | "image">, models: [],
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, apiKey: "config-ollama-key",
contextWindow: 8192,
maxTokens: 81920,
}, },
]; },
});
const providers = await resolveImplicitProviders({ expect(providers?.ollama?.apiKey).toBe("config-ollama-key");
agentDir,
explicitProviders: {
ollama: {
baseUrl: "http://remote-ollama:11434",
models: explicitModels,
},
},
});
expect(providers?.ollama?.api).toBe("ollama");
expect(providers?.ollama?.models).toEqual(explicitModels);
} finally {
delete process.env.OLLAMA_API_KEY;
}
}); });
}); });