36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import { test } from "node:test";
|
|
import {
|
|
cfgFromSettings,
|
|
escapeXml,
|
|
normalizeBaseUrl,
|
|
shorten,
|
|
} from "../src/lib/util";
|
|
|
|
test("normalizeBaseUrl strips trailing slashes", () => {
|
|
assert.equal(normalizeBaseUrl("http://localhost:9292/"), "http://localhost:9292");
|
|
assert.equal(normalizeBaseUrl("http://localhost:9292"), "http://localhost:9292");
|
|
});
|
|
|
|
test("cfgFromSettings defaults baseUrl and omits empty apiKey", () => {
|
|
const cfg = cfgFromSettings({});
|
|
assert.equal(cfg.baseUrl, "http://localhost:9292");
|
|
assert.equal(cfg.apiKey, undefined);
|
|
assert.equal(cfg.insecure, false);
|
|
assert.deepEqual(cfgFromSettings({ baseUrl: "http://x/", apiKey: "abc", insecure: true }), {
|
|
baseUrl: "http://x",
|
|
apiKey: "abc",
|
|
insecure: true,
|
|
});
|
|
assert.equal(cfgFromSettings({ insecure: "yes" }).insecure, false);
|
|
});
|
|
|
|
test("shorten keeps short names and truncates long ones", () => {
|
|
assert.equal(shorten("Qwen3.8-27B"), "Qwen3.8-27B");
|
|
assert.equal(shorten("DeepSeek-V4-Flash-0731"), "DeepSeek-…0731");
|
|
});
|
|
|
|
test("escapeXml escapes XML special characters", () => {
|
|
assert.equal(escapeXml(`A&B <C> "D" 'E'`), "A&B <C> "D" 'E'");
|
|
});
|