Files
dev/third_party/pi/packages/ai/test/image-model-data.test.ts
alexion 4def357d09 chore(vendor): import pi 0.85.1
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree.

git-subtree-dir: third_party/pi

git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
2026-09-14 10:48:47 -04:00

48 lines
1.2 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { parseOpenRouterImageModels } from "../scripts/generate-image-models.ts";
const validImageModel = {
id: "example/image-model",
name: "Example Image Model",
architecture: {
input_modalities: ["text", "image"],
output_modalities: ["image"],
},
pricing: {
prompt: "0.000001",
completion: "0.000002",
},
};
describe("OpenRouter image model parsing", () => {
it.each([{}, { data: [] }, { data: "invalid" }])("rejects a missing or empty strict catalog", (payload) => {
expect(() => parseOpenRouterImageModels(payload, true)).toThrow("missing or empty image model list");
});
it("rejects a strict catalog with no usable image models", () => {
expect(() =>
parseOpenRouterImageModels(
{
data: [
{
...validImageModel,
architecture: { input_modalities: ["text"], output_modalities: ["text"] },
},
],
},
true,
),
).toThrow("no usable image models");
});
it("parses a non-empty image model catalog", () => {
expect(parseOpenRouterImageModels({ data: [validImageModel] }, true)).toEqual([
expect.objectContaining({
id: "example/image-model",
input: ["text", "image"],
output: ["image"],
}),
]);
});
});