/* @vitest-environment node */ import { describe, it, expect } from "vitest"; import { buildOverviewCards } from "./cardsConfig.js"; describe("lib/frontend/overview/cardsConfig", () => { it("returns 3 cards when user management is not allowed", () => { const cards = buildOverviewCards({ explorerHref: "/NL01", searchHref: "/NL01/search", canManageUsers: false, disabledHint: "Bitte zuerst eine gültige Niederlassung wählen.", }); expect(cards).toHaveLength(3); expect(cards.map((x) => x.key)).toEqual(["explorer", "search", "profile"]); }); it("returns 4 cards when user management is allowed", () => { const cards = buildOverviewCards({ explorerHref: "/NL01", searchHref: "/NL01/search", canManageUsers: true, disabledHint: "Bitte zuerst eine gültige Niederlassung wählen.", }); expect(cards).toHaveLength(4); expect(cards.map((x) => x.key)).toEqual([ "explorer", "search", "profile", "users", ]); }); it("uses explorer/search hrefs and assigns disabledHint only to branch cards", () => { const cards = buildOverviewCards({ explorerHref: null, searchHref: null, canManageUsers: true, disabledHint: "Bitte zuerst eine gültige Niederlassung wählen.", }); const byKey = Object.fromEntries(cards.map((card) => [card.key, card])); expect(byKey.explorer.href).toBe(null); expect(byKey.search.href).toBe(null); expect(byKey.profile.href).toBe("/profile"); expect(byKey.users.href).toBe("/admin/users"); expect(byKey.explorer.disabledHint).toBe( "Bitte zuerst eine gültige Niederlassung wählen.", ); expect(byKey.search.disabledHint).toBe( "Bitte zuerst eine gültige Niederlassung wählen.", ); expect(byKey.profile.disabledHint).toBe(null); expect(byKey.users.disabledHint).toBe(null); }); });