Spaces:
Paused
Paused
| 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"); | |
| }); | |
| }); | |