Files
diegosouzapw--omniroute/tests/unit/model-catalog-search.test.ts
2026-07-13 13:39:12 +08:00

41 lines
1.7 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import {
getModelCatalogSourceLabel,
matchesModelCatalogQuery,
normalizeModelCatalogSource,
} from "../../src/shared/utils/modelCatalogSearch.ts";
test("model catalog source normalization groups manual and synced rows separately", () => {
assert.equal(normalizeModelCatalogSource("manual"), "custom");
assert.equal(normalizeModelCatalogSource("imported"), "imported");
assert.equal(normalizeModelCatalogSource("api-sync"), "imported");
assert.equal(normalizeModelCatalogSource("fallback"), "fallback");
assert.equal(normalizeModelCatalogSource("alias"), "alias");
assert.equal(normalizeModelCatalogSource(undefined), "system");
});
test("model catalog source labels stay user-facing", () => {
assert.equal(getModelCatalogSourceLabel("system"), "Built-in");
assert.equal(getModelCatalogSourceLabel("custom"), "Custom");
assert.equal(getModelCatalogSourceLabel("imported"), "Imported");
assert.equal(getModelCatalogSourceLabel("fallback"), "Fallback");
assert.equal(getModelCatalogSourceLabel("alias"), "Alias");
});
test("model catalog query matches id, display name, alias and source label", () => {
const target = {
modelId: "qwen/qwen3-coder-480b-a35b-instruct",
modelName: "Qwen3 Coder 480B",
alias: "best-qwen",
source: "imported",
};
assert.equal(matchesModelCatalogQuery("", target), true);
assert.equal(matchesModelCatalogQuery("coder-480b", target), true);
assert.equal(matchesModelCatalogQuery("best-qwen", target), true);
assert.equal(matchesModelCatalogQuery("synced", target), true);
assert.equal(matchesModelCatalogQuery("built-in", target), false);
});