import { describe, expect, it } from "vitest"; import { z } from "@/lib/validierung"; import { AustauschSchema, StrukturSchema } from "@/lib/vorlagen-format"; /** * Zod ist in src/lib/validierung.ts auf Deutsch eingestellt (#009). * * Ohne diese Einstellung landen englische Standardsaetze ueber die Server * Actions in der Oberflaeche — und zwar genau dort, wo niemand an eine eigene * Meldung gedacht hat. */ describe("Deutsche Meldungen", () => { it("meldet einen falschen Typ auf Deutsch", () => { const ergebnis = z.object({ name: z.string() }).safeParse({ name: 42 }); expect(ergebnis.error?.issues[0]?.message).toMatch(/Ungültige Eingabe/); }); it("meldet ein fehlendes Pflichtfeld auf Deutsch", () => { const ergebnis = z.object({ name: z.string() }).safeParse({}); expect(ergebnis.error?.issues[0]?.message).not.toMatch(/Invalid input/); }); it("laesst eigene Meldungen unangetastet", () => { const ergebnis = StrukturSchema.safeParse({ abschnitte: [{ titel: "A", schritte: [{ titel: "" }] }], }); expect(ergebnis.error?.issues[0]?.message).toBe("Ein Schritt braucht einen Titel."); }); it("meldet ein unbekanntes Austauschformat auf Deutsch", () => { const ergebnis = AustauschSchema.safeParse({ format: 99, name: "X", struktur: {} }); expect(ergebnis.error?.issues[0]?.message).toMatch(/Unbekanntes Format/); }); });