interface-sidebar-nav.spec.ts 1.5 KB

1234567891011121314151617181920212223242526
  1. import { readFileSync } from "node:fs"
  2. import { resolve } from "node:path"
  3. import { describe, expect, it } from "vitest"
  4. import zh from "@/i18n/zh.json"
  5. const interfaceSectionSource = readFileSync(resolve(__dirname, "sections/interface-section.tsx"), "utf8")
  6. const settingsTypesSource = readFileSync(resolve(__dirname, "settings-types.ts"), "utf8")
  7. const settingsViewSource = readFileSync(resolve(__dirname, "settings-view.tsx"), "utf8")
  8. describe("settings sidebar nav preferences", () => {
  9. it("stores sidebar nav config in the settings draft and saves it through the wiki store", () => {
  10. expect(settingsTypesSource).toContain("sidebarNavConfig")
  11. expect(settingsViewSource).toContain("const sidebarNavConfig = useWikiStore((s) => s.sidebarNavConfig)")
  12. expect(settingsViewSource).toContain("const setSidebarNavConfig = useWikiStore((s) => s.setSidebarNavConfig)")
  13. expect(settingsViewSource).toContain("setSidebarNavConfig(draft.sidebarNavConfig)")
  14. })
  15. it("renders a Chinese sidebar feature visibility section in interface settings", () => {
  16. expect(interfaceSectionSource).toContain("SIDEBAR_NAV_LABEL_KEYS")
  17. expect(interfaceSectionSource).toContain("skillLibrary")
  18. expect(interfaceSectionSource).toContain('setDraft("sidebarNavConfig"')
  19. expect(interfaceSectionSource).toContain('type="checkbox"')
  20. expect(zh.settings.sections.interface.sidebarNavTitle).toBe("左侧功能栏")
  21. expect(zh.settings.sections.interface.sidebarNavDescription).toBe("勾选要在左侧显示的功能,取消勾选后该功能入口会隐藏。")
  22. })
  23. })