|
|
@@ -0,0 +1,42 @@
|
|
|
+/* @vitest-environment node */
|
|
|
+
|
|
|
+import { describe, it, expect } from "vitest";
|
|
|
+import { getPrimaryNavFromPathname, PRIMARY_NAV } from "./activeRoute.js";
|
|
|
+
|
|
|
+describe("lib/frontend/nav/activeRoute", () => {
|
|
|
+ it("returns null for non-branch routes", () => {
|
|
|
+ expect(getPrimaryNavFromPathname("/")).toBe(null);
|
|
|
+ expect(getPrimaryNavFromPathname("/login")).toBe(null);
|
|
|
+ expect(getPrimaryNavFromPathname("/forbidden")).toBe(null);
|
|
|
+ expect(getPrimaryNavFromPathname("/search")).toBe(null);
|
|
|
+ });
|
|
|
+
|
|
|
+ it("marks explorer active for /:branch and /:branch/... (non-search)", () => {
|
|
|
+ expect(getPrimaryNavFromPathname("/NL01")).toEqual({
|
|
|
+ active: PRIMARY_NAV.EXPLORER,
|
|
|
+ branch: "NL01",
|
|
|
+ });
|
|
|
+
|
|
|
+ expect(getPrimaryNavFromPathname("/NL01/2025/12/31")).toEqual({
|
|
|
+ active: PRIMARY_NAV.EXPLORER,
|
|
|
+ branch: "NL01",
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it("marks search active for /:branch/search", () => {
|
|
|
+ expect(getPrimaryNavFromPathname("/NL01/search")).toEqual({
|
|
|
+ active: PRIMARY_NAV.SEARCH,
|
|
|
+ branch: "NL01",
|
|
|
+ });
|
|
|
+
|
|
|
+ expect(getPrimaryNavFromPathname("/NL01/search/anything")).toEqual({
|
|
|
+ active: PRIMARY_NAV.SEARCH,
|
|
|
+ branch: "NL01",
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ it("returns null for invalid branch segment", () => {
|
|
|
+ expect(getPrimaryNavFromPathname("/nl01")).toBe(null);
|
|
|
+ expect(getPrimaryNavFromPathname("/XX01")).toBe(null);
|
|
|
+ });
|
|
|
+});
|