41 lines
1.7 KiB
TypeScript
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);
|
|
});
|