Files
YschcmsFront/src/utils/sitePath.spec.ts
T

30 lines
1.3 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* W4 嵌套路径:站点门户 URL 拼接纯函数(方案 §8.3 T-W4-16)。
* portalUrlOf:站点对象 → 门户地址(path 优先,尾斜杠;path 缺失回退 code 兼容历史数据);
* previewPortalUrl:上级 path + 编码 → 子站门户地址(parentPath 空 → 单段)。
*/
import { describe, expect, it } from "vitest";
import { portalUrlOf, previewPortalUrl } from "@/utils/sitePath";
describe("portalUrlOf(T-W4-16)", () => {
it("path 优先:嵌套 path 拼单段门户地址 + 尾斜杠", () => {
expect(portalUrlOf({ path: "sch-3/jdxy", code: "jdxy" })).toBe("/portal/sch-3/jdxy/");
});
it("path 缺失回退 code(历史数据兼容)", () => {
expect(portalUrlOf({ code: "demo" })).toBe("/portal/demo/");
expect(portalUrlOf({ path: "", code: "demo" })).toBe("/portal/demo/");
});
});
describe("previewPortalUrl(T-W4-16)", () => {
it("上级 path 非空 → 两段嵌套 + 尾斜杠", () => {
expect(previewPortalUrl("sch-3", "jdxy")).toBe("/portal/sch-3/jdxy/");
});
it("上级 path 空 → 单段(顶层站)", () => {
expect(previewPortalUrl("", "sch-9")).toBe("/portal/sch-9/");
expect(previewPortalUrl(undefined, "sch-9")).toBe("/portal/sch-9/");
});
});