33 lines
1,013 B
TypeScript
33 lines
1,013 B
TypeScript
import { afterEach, describe, expect, it } from "vitest";
|
|
import {
|
|
ensurePiModelConfiguredAndAvailable,
|
|
listPiModels,
|
|
resetPiModelsCacheForTests,
|
|
} from "./models.js";
|
|
|
|
describe("pi models", () => {
|
|
afterEach(() => {
|
|
delete process.env.PAPERCLIP_PI_COMMAND;
|
|
resetPiModelsCacheForTests();
|
|
});
|
|
|
|
it("returns an empty list when discovery command is unavailable", async () => {
|
|
process.env.PAPERCLIP_PI_COMMAND = "__paperclip_missing_pi_command__";
|
|
await expect(listPiModels()).resolves.toEqual([]);
|
|
});
|
|
|
|
it("rejects when model is missing", async () => {
|
|
await expect(
|
|
ensurePiModelConfiguredAndAvailable({ model: "" }),
|
|
).rejects.toThrow("Pi requires `adapterConfig.model`");
|
|
});
|
|
|
|
it("rejects when discovery cannot run for configured model", async () => {
|
|
process.env.PAPERCLIP_PI_COMMAND = "__paperclip_missing_pi_command__";
|
|
await expect(
|
|
ensurePiModelConfiguredAndAvailable({
|
|
model: "xai/grok-4",
|
|
}),
|
|
).rejects.toThrow();
|
|
});
|
|
});
|