diff --git a/apps/web/src/components/layout/PageHead/PageHead.test.tsx b/apps/web/src/components/layout/PageHead/PageHead.test.tsx new file mode 100644 index 000000000..7d34e3771 --- /dev/null +++ b/apps/web/src/components/layout/PageHead/PageHead.test.tsx @@ -0,0 +1,37 @@ +import PageHead from "./index" +import type { BreadcrumbItem, PageHeadProps } from "./types" +import { generateBreadcrumb } from "./utils" +import { ROUTE_TITLE_MAP } from "./constants" + +describe("PageHead", () => { + it("模块可正常导入", () => { + expect(PageHead).toBeDefined() + }) + + it("类型导出正常", () => { + const item: BreadcrumbItem = { label: "测试" } + expect(item.label).toBe("测试") + + const props: PageHeadProps = { title: "测试页面" } + expect(props.title).toBe("测试页面") + }) + + it("generateBreadcrumb 生成首页面包屑", () => { + const result = generateBreadcrumb("/app/dashboard") + expect(result.length).toBe(1) + expect(result[0].label).toBe("首页") + }) + + it("generateBreadcrumb 生成多级面包屑", () => { + const result = generateBreadcrumb("/app/voices") + expect(result.length).toBeGreaterThanOrEqual(2) + expect(result[0].label).toBe("首页") + expect(result[result.length - 1].label).toBe("配音库") + }) + + it("ROUTE_TITLE_MAP 包含主要路由", () => { + expect(ROUTE_TITLE_MAP["/app/dashboard"]).toBe("首页") + expect(ROUTE_TITLE_MAP["/app/generate"]).toBe("智能剪辑") + }) +}) +