feat(vorlagen): Versionierung, Unveraenderlichkeit und JSON-Austausch (#23)
This commit was merged in pull request #23.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
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/);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user