mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-06-13 18:31:16 +08:00
89 lines
2.9 KiB
JavaScript
89 lines
2.9 KiB
JavaScript
import assert from "node:assert/strict";
|
|
|
|
import { setLocale } from "../i18n/index.js";
|
|
import {
|
|
uiBuildRegionLine,
|
|
uiBuildScopeMetaText,
|
|
uiDescribeStoryTimeSpanDisplay,
|
|
uiMemoryNodeTypeClass,
|
|
uiOwnerTypeLabel,
|
|
uiScopeBadgeText,
|
|
uiTypeLabel,
|
|
} from "../ui/ui-label-formatter.js";
|
|
|
|
setLocale("zh-CN");
|
|
assert.equal(uiTypeLabel("event"), "事件");
|
|
assert.equal(uiTypeLabel("pov_memory"), "主观记忆");
|
|
assert.equal(uiTypeLabel("custom_type"), "custom_type");
|
|
assert.equal(uiTypeLabel(""), "—");
|
|
assert.equal(uiMemoryNodeTypeClass("character"), "type-character");
|
|
assert.equal(uiMemoryNodeTypeClass("pov_memory"), "type-character");
|
|
assert.equal(uiMemoryNodeTypeClass("event"), "type-event");
|
|
assert.equal(uiOwnerTypeLabel("user"), "用户");
|
|
assert.equal(uiOwnerTypeLabel("character"), "角色");
|
|
assert.equal(
|
|
uiScopeBadgeText({ layer: "pov", ownerType: "character", ownerName: "艾琳" }),
|
|
"角色 POV · 艾琳",
|
|
);
|
|
assert.equal(
|
|
uiScopeBadgeText({ layer: "objective", regionPrimary: "钟楼" }),
|
|
"客观 · 钟楼",
|
|
);
|
|
assert.equal(
|
|
uiBuildRegionLine({
|
|
regionPrimary: "钟楼",
|
|
regionPath: ["王城", "钟楼"],
|
|
regionSecondary: ["地下室"],
|
|
}),
|
|
"主地区: 钟楼 | 地区路径: 王城 / 钟楼 | 次级地区: 地下室",
|
|
);
|
|
assert.equal(uiDescribeStoryTimeSpanDisplay({ mixed: true }), "混合时间");
|
|
assert.equal(
|
|
uiDescribeStoryTimeSpanDisplay({ startLabel: "第一章", endLabel: "第二章", mixed: true }),
|
|
"第一章 → 第二章 · 混合",
|
|
);
|
|
assert.equal(
|
|
uiBuildScopeMetaText({
|
|
scope: { layer: "pov", ownerType: "user", ownerName: "玩家" },
|
|
storyTimeSpan: { startLabel: "第一章", mixed: true },
|
|
}),
|
|
"用户 POV: 玩家 · 剧情时间: 第一章 · 混合",
|
|
);
|
|
|
|
setLocale("en-US");
|
|
assert.equal(uiTypeLabel("event"), "Event");
|
|
assert.equal(uiTypeLabel("pov_memory"), "POV Memory");
|
|
assert.equal(uiOwnerTypeLabel("user"), "User");
|
|
assert.equal(uiOwnerTypeLabel("character"), "Character");
|
|
assert.equal(
|
|
uiScopeBadgeText({ layer: "pov", ownerType: "character", ownerName: "Eileen" }),
|
|
"Character POV · Eileen",
|
|
);
|
|
assert.equal(
|
|
uiScopeBadgeText({ layer: "objective", regionPrimary: "Clocktower" }),
|
|
"Objective · Clocktower",
|
|
);
|
|
assert.equal(
|
|
uiBuildRegionLine({
|
|
regionPrimary: "Clocktower",
|
|
regionPath: ["Capital", "Clocktower"],
|
|
regionSecondary: ["Basement"],
|
|
}),
|
|
"Primary region: Clocktower | Region path: Capital / Clocktower | Secondary regions: Basement",
|
|
);
|
|
assert.equal(uiDescribeStoryTimeSpanDisplay({ mixed: true }), "Mixed time");
|
|
assert.equal(
|
|
uiDescribeStoryTimeSpanDisplay({ startLabel: "Chapter 1", endLabel: "Chapter 2", mixed: true }),
|
|
"Chapter 1 → Chapter 2 · mixed",
|
|
);
|
|
assert.equal(
|
|
uiBuildScopeMetaText({
|
|
scope: { layer: "pov", ownerType: "user", ownerName: "Player" },
|
|
storyTimeSpan: { startLabel: "Chapter 1", mixed: true },
|
|
}),
|
|
"User POV: Player · Story time: Chapter 1 · mixed",
|
|
);
|
|
|
|
setLocale("zh-CN");
|
|
console.log("ui label formatter tests passed");
|