import { describe, expect, it } from "vitest"; import { site, home, pages, homeSchema, displayableTestimonials, serviceBySlug, } from "@/lib/content"; describe("contenu administrable", () => { it("charge et valide les trois fichiers JSON", () => { expect(site.brand.name).toBe("PHI Conseil"); expect(home.services.items).toHaveLength(4); expect(pages.contact.subjects.length).toBeGreaterThan(0); }); it("rejette un contenu invalide avec un message lisible", () => { const broken = structuredClone(home) as Record; (broken.hero as { titleLines: string[] }).titleLines = []; const r = homeSchema.safeParse(broken); expect(r.success).toBe(false); }); it("ne publie jamais un témoignage non approuvé hors prévisualisation", () => { expect(displayableTestimonials(false).items).toHaveLength(0); }); it("montre les exemples en prévisualisation avec le drapeau isPreview", () => { const r = displayableTestimonials(true); expect(r.isPreview).toBe(true); expect(r.items.length).toBeGreaterThan(0); }); it("retrouve un service par slug", () => { expect(serviceBySlug("reddition-de-comptes")?.title).toBe("Reddition de comptes"); expect(serviceBySlug("inexistant")).toBeUndefined(); }); });