34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { afterEach, describe, expect, it } from "vitest";
|
|
import {
|
|
ensureOpenCodeModelConfiguredAndAvailable,
|
|
listOpenCodeModels,
|
|
resetOpenCodeModelsCacheForTests,
|
|
} from "./models.js";
|
|
|
|
describe("openCode models", () => {
|
|
afterEach(() => {
|
|
delete process.env.PAPERCLIP_OPENCODE_COMMAND;
|
|
resetOpenCodeModelsCacheForTests();
|
|
});
|
|
|
|
it("returns an empty list when discovery command is unavailable", async () => {
|
|
process.env.PAPERCLIP_OPENCODE_COMMAND = "__paperclip_missing_opencode_command__";
|
|
await expect(listOpenCodeModels()).resolves.toEqual([]);
|
|
});
|
|
|
|
it("rejects when model is missing", async () => {
|
|
await expect(
|
|
ensureOpenCodeModelConfiguredAndAvailable({ model: "" }),
|
|
).rejects.toThrow("OpenCode requires `adapterConfig.model`");
|
|
});
|
|
|
|
it("rejects when discovery cannot run for configured model", async () => {
|
|
process.env.PAPERCLIP_OPENCODE_COMMAND = "__paperclip_missing_opencode_command__";
|
|
await expect(
|
|
ensureOpenCodeModelConfiguredAndAvailable({
|
|
model: "openai/gpt-5",
|
|
}),
|
|
).rejects.toThrow("Failed to start command");
|
|
});
|
|
});
|