mirror of
https://github.com/luckyyzh/pi-agent-integrated.git
synced 2026-10-03 11:09:34 +00:00
31 lines
1.1 KiB
JavaScript
31 lines
1.1 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
import {
|
|
getLocalePlugin,
|
|
getSupportedLocales,
|
|
registerLocale,
|
|
resolveBrowserLocale,
|
|
} from "./registry.ts";
|
|
|
|
test("uses the first supported browser language and falls back to English", () => {
|
|
assert.equal(resolveBrowserLocale(["zh-CN", "en-US"]), "zh-CN");
|
|
assert.equal(resolveBrowserLocale(["zh", "en-US"]), "zh-CN");
|
|
assert.equal(resolveBrowserLocale(["en-US", "zh-CN"]), "en");
|
|
assert.equal(resolveBrowserLocale(["fr-FR", "zh-CN"]), "zh-CN");
|
|
assert.equal(resolveBrowserLocale(["fr-FR"]), "en");
|
|
assert.equal(resolveBrowserLocale([]), "en");
|
|
});
|
|
|
|
test("returns only registered locales", () => {
|
|
assert.deepEqual(getSupportedLocales(), ["en", "zh-CN"]);
|
|
assert.equal(getLocalePlugin("en").id, "en");
|
|
assert.equal(getLocalePlugin("missing"), undefined);
|
|
});
|
|
|
|
test("allows a new locale plugin and rejects duplicate ids", () => {
|
|
registerLocale({ id: "test", label: "Test", messages: { "common.ok": "OK" } });
|
|
assert.equal(getLocalePlugin("test")?.label, "Test");
|
|
assert.throws(() => registerLocale({ id: "test", label: "Again", messages: {} }));
|
|
});
|