activeRoute.test.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* @vitest-environment node */
  2. import { describe, it, expect } from "vitest";
  3. import { getPrimaryNavFromPathname, PRIMARY_NAV } from "./activeRoute.js";
  4. describe("lib/frontend/nav/activeRoute", () => {
  5. it("returns null for non-branch routes", () => {
  6. expect(getPrimaryNavFromPathname("/")).toBe(null);
  7. expect(getPrimaryNavFromPathname("/login")).toBe(null);
  8. expect(getPrimaryNavFromPathname("/forbidden")).toBe(null);
  9. expect(getPrimaryNavFromPathname("/search")).toBe(null);
  10. });
  11. it("marks explorer active for /:branch and /:branch/... (non-search)", () => {
  12. expect(getPrimaryNavFromPathname("/NL01")).toEqual({
  13. active: PRIMARY_NAV.EXPLORER,
  14. branch: "NL01",
  15. });
  16. expect(getPrimaryNavFromPathname("/NL01/2025/12/31")).toEqual({
  17. active: PRIMARY_NAV.EXPLORER,
  18. branch: "NL01",
  19. });
  20. });
  21. it("marks search active for /:branch/search", () => {
  22. expect(getPrimaryNavFromPathname("/NL01/search")).toEqual({
  23. active: PRIMARY_NAV.SEARCH,
  24. branch: "NL01",
  25. });
  26. expect(getPrimaryNavFromPathname("/NL01/search/anything")).toEqual({
  27. active: PRIMARY_NAV.SEARCH,
  28. branch: "NL01",
  29. });
  30. });
  31. it("returns null for invalid branch segment", () => {
  32. expect(getPrimaryNavFromPathname("/nl01")).toBe(null);
  33. expect(getPrimaryNavFromPathname("/XX01")).toBe(null);
  34. });
  35. });