mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-10 22:24:32 +00:00
Update models-config.providers.ollama.test.ts
This commit is contained in:
@@ -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;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user