Files
openclaw/src/agents/model-ref-shared.test.ts
2026-05-15 11:24:06 +01:00

58 lines
1.7 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
normalizeConfiguredProviderCatalogModelId,
normalizeStaticProviderModelId,
} from "./model-ref-shared.js";
describe("normalizeStaticProviderModelId", () => {
it("re-adds the nvidia prefix for bare model ids", () => {
expect(normalizeStaticProviderModelId("nvidia", "nemotron-3-super-120b-a12b")).toBe(
"nvidia/nemotron-3-super-120b-a12b",
);
});
it("does not double-prefix already prefixed models", () => {
expect(normalizeStaticProviderModelId("nvidia", "nvidia/nemotron-3-super-120b-a12b")).toBe(
"nvidia/nemotron-3-super-120b-a12b",
);
});
});
describe("normalizeConfiguredProviderCatalogModelId", () => {
const manifestPlugins = [
{
modelIdNormalization: {
providers: {
custom: {
aliases: {
latest: "modern-model",
},
prefixWhenBare: "vendor",
},
},
},
},
];
it("applies supplied manifest normalization policies to configured catalog ids", () => {
expect(normalizeConfiguredProviderCatalogModelId("custom", "latest", { manifestPlugins })).toBe(
"vendor/modern-model",
);
});
it("can skip manifest normalization while retaining built-in normalization", () => {
expect(
normalizeConfiguredProviderCatalogModelId("custom", "latest", {
allowManifestNormalization: false,
manifestPlugins,
}),
).toBe("latest");
});
it("normalizes nested retired Google Gemini ids in proxy-prefixed rows", () => {
expect(
normalizeConfiguredProviderCatalogModelId("kilocode", "kilocode/google/gemini-3-pro-preview"),
).toBe("kilocode/google/gemini-3.1-pro-preview");
});
});