nexus/packages/adapters/pi-local/src/server/models.test.ts
2026-03-06 18:29:38 -08:00

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();
});
});