pathMapping.test.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /* @vitest-environment node */
  2. import { describe, it, expect } from "vitest";
  3. import { mapQsirchItemToSearchItem } from "./pathMapping.js";
  4. describe("lib/search/pathMapping", () => {
  5. it("maps a valid Qsirch item into our search item format", () => {
  6. const item = {
  7. path: "Niederlassungen/NL20/2025/12/18",
  8. name: "Test_File",
  9. extension: "pdf",
  10. };
  11. const mapped = mapQsirchItemToSearchItem(item, {
  12. pathPrefix: "/Niederlassungen",
  13. });
  14. expect(mapped).toEqual({
  15. branch: "NL20",
  16. date: "2025-12-18",
  17. year: "2025",
  18. month: "12",
  19. day: "18",
  20. filename: "Test_File.pdf",
  21. relativePath: "NL20/2025/12/18/Test_File.pdf",
  22. });
  23. });
  24. it("rejects unexpected paths outside prefix", () => {
  25. const item = {
  26. path: "Public/NL20/2025/12/18",
  27. name: "Test",
  28. extension: "pdf",
  29. };
  30. expect(
  31. mapQsirchItemToSearchItem(item, { pathPrefix: "/Niederlassungen" })
  32. ).toBe(null);
  33. });
  34. it("rejects paths not matching NLxx/YYYY/MM/DD", () => {
  35. const item = {
  36. path: "Niederlassungen/NL20/2025/12",
  37. name: "Test",
  38. extension: "pdf",
  39. };
  40. expect(
  41. mapQsirchItemToSearchItem(item, { pathPrefix: "/Niederlassungen" })
  42. ).toBe(null);
  43. });
  44. });