diff --git a/apps/web/src/test/config/navigation.test.ts b/apps/web/src/test/config/navigation.test.ts index e3e9e1626..a16bf579d 100644 --- a/apps/web/src/test/config/navigation.test.ts +++ b/apps/web/src/test/config/navigation.test.ts @@ -1,79 +1,79 @@ /** * navigation config 测试 */ -import { describe, it, expect } from "vitest"; -import { NAV_ITEMS, NAV_GROUPS } from "@/config/navigation"; +import { describe, it, expect } from "vitest" +import { NAV_ITEMS, NAV_GROUPS } from "@/config/navigation" describe("navigation config", () => { describe("NAV_ITEMS", () => { it("应该是一个非空数组", () => { - expect(Array.isArray(NAV_ITEMS)).toBe(true); - expect(NAV_ITEMS.length).toBeGreaterThan(0); - }); + expect(Array.isArray(NAV_ITEMS)).toBe(true) + expect(NAV_ITEMS.length).toBeGreaterThan(0) + }) it("每个导航项都有必需字段", () => { NAV_ITEMS.forEach((item) => { - expect(item).toHaveProperty("key"); - expect(item).toHaveProperty("label"); - expect(item).toHaveProperty("path"); - expect(item).toHaveProperty("icon"); - expect(typeof item.key).toBe("string"); - expect(typeof item.label).toBe("string"); - expect(typeof item.path).toBe("string"); - expect(item.path).toMatch(/^\/app/); - }); - }); + expect(item).toHaveProperty("key") + expect(item).toHaveProperty("label") + expect(item).toHaveProperty("path") + expect(item).toHaveProperty("icon") + expect(typeof item.key).toBe("string") + expect(typeof item.label).toBe("string") + expect(typeof item.path).toBe("string") + expect(item.path).toMatch(/^\/app/) + }) + }) it("key 不重复", () => { - const keys = NAV_ITEMS.map((item) => item.key); - expect(new Set(keys).size).toBe(keys.length); - }); + const keys = NAV_ITEMS.map((item) => item.key) + expect(new Set(keys).size).toBe(keys.length) + }) it("path 不重复", () => { - const paths = NAV_ITEMS.map((item) => item.path); - expect(new Set(paths).size).toBe(paths.length); - }); + const paths = NAV_ITEMS.map((item) => item.path) + expect(new Set(paths).size).toBe(paths.length) + }) it("包含核心导航项", () => { - const keys = NAV_ITEMS.map((item) => item.key); - expect(keys).toContain("dashboard"); - expect(keys).toContain("assets"); - expect(keys).toContain("voices"); - expect(keys).toContain("titles"); - }); - }); + const keys = NAV_ITEMS.map((item) => item.key) + expect(keys).toContain("dashboard") + expect(keys).toContain("assets") + expect(keys).toContain("voices") + expect(keys).toContain("titles") + }) + }) describe("NAV_GROUPS", () => { it("应该是一个非空数组", () => { - expect(Array.isArray(NAV_GROUPS)).toBe(true); - expect(NAV_GROUPS.length).toBeGreaterThan(0); - }); + expect(Array.isArray(NAV_GROUPS)).toBe(true) + expect(NAV_GROUPS.length).toBeGreaterThan(0) + }) it("每个分组都有 title 和 items", () => { NAV_GROUPS.forEach((group) => { - expect(group).toHaveProperty("title"); - expect(group).toHaveProperty("items"); - expect(typeof group.title).toBe("string"); - expect(Array.isArray(group.items)).toBe(true); - expect(group.items.length).toBeGreaterThan(0); - }); - }); + expect(group).toHaveProperty("title") + expect(group).toHaveProperty("items") + expect(typeof group.title).toBe("string") + expect(Array.isArray(group.items)).toBe(true) + expect(group.items.length).toBeGreaterThan(0) + }) + }) it("分组中的每个导航项结构正确", () => { NAV_GROUPS.forEach((group) => { group.items.forEach((item) => { - expect(item).toHaveProperty("key"); - expect(item).toHaveProperty("label"); - expect(item).toHaveProperty("path"); - expect(item).toHaveProperty("icon"); - expect(item.path).toMatch(/^\/app/); - }); - }); - }); + expect(item).toHaveProperty("key") + expect(item).toHaveProperty("label") + expect(item).toHaveProperty("path") + expect(item).toHaveProperty("icon") + expect(item.path).toMatch(/^\/app/) + }) + }) + }) it("分组标题不重复", () => { - const titles = NAV_GROUPS.map((g) => g.title); - expect(new Set(titles).size).toBe(titles.length); - }); - }); -}); + const titles = NAV_GROUPS.map((g) => g.title) + expect(new Set(titles).size).toBe(titles.length) + }) + }) +})