cardsConfig.test.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /* @vitest-environment node */
  2. import { describe, it, expect } from "vitest";
  3. import { buildOverviewCards } from "./cardsConfig.js";
  4. describe("lib/frontend/overview/cardsConfig", () => {
  5. it("returns 3 cards when user management is not allowed", () => {
  6. const cards = buildOverviewCards({
  7. explorerHref: "/NL01",
  8. searchHref: "/NL01/search",
  9. canManageUsers: false,
  10. disabledHint: "Bitte zuerst eine gültige Niederlassung wählen.",
  11. });
  12. expect(cards).toHaveLength(3);
  13. expect(cards.map((x) => x.key)).toEqual(["explorer", "search", "profile"]);
  14. });
  15. it("returns 4 cards when user management is allowed", () => {
  16. const cards = buildOverviewCards({
  17. explorerHref: "/NL01",
  18. searchHref: "/NL01/search",
  19. canManageUsers: true,
  20. disabledHint: "Bitte zuerst eine gültige Niederlassung wählen.",
  21. });
  22. expect(cards).toHaveLength(4);
  23. expect(cards.map((x) => x.key)).toEqual([
  24. "explorer",
  25. "search",
  26. "profile",
  27. "users",
  28. ]);
  29. });
  30. it("uses explorer/search hrefs and assigns disabledHint only to branch cards", () => {
  31. const cards = buildOverviewCards({
  32. explorerHref: null,
  33. searchHref: null,
  34. canManageUsers: true,
  35. disabledHint: "Bitte zuerst eine gültige Niederlassung wählen.",
  36. });
  37. const byKey = Object.fromEntries(cards.map((card) => [card.key, card]));
  38. expect(byKey.explorer.href).toBe(null);
  39. expect(byKey.search.href).toBe(null);
  40. expect(byKey.profile.href).toBe("/profile");
  41. expect(byKey.users.href).toBe("/admin/users");
  42. expect(byKey.explorer.disabledHint).toBe(
  43. "Bitte zuerst eine gültige Niederlassung wählen.",
  44. );
  45. expect(byKey.search.disabledHint).toBe(
  46. "Bitte zuerst eine gültige Niederlassung wählen.",
  47. );
  48. expect(byKey.profile.disabledHint).toBe(null);
  49. expect(byKey.users.disabledHint).toBe(null);
  50. });
  51. });