feat(vorlagen): Editor, Liste und Versionsgeschichte (#24)
This commit was merged in pull request #24.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { z } from "@/lib/validierung";
|
||||
import { AustauschSchema, StrukturSchema } from "@/lib/vorlagen-format";
|
||||
import { AustauschSchema, StrukturSchema, stelleBenennen } from "@/lib/vorlagen-format";
|
||||
|
||||
/**
|
||||
* Zod ist in src/lib/validierung.ts auf Deutsch eingestellt (#009).
|
||||
@@ -32,3 +32,29 @@ describe("Deutsche Meldungen", () => {
|
||||
expect(ergebnis.error?.issues[0]?.message).toMatch(/Unbekanntes Format/);
|
||||
});
|
||||
});
|
||||
|
||||
describe("Stelle benennen", () => {
|
||||
it("macht aus einem Zod-Pfad eine Stelle im Editor", () => {
|
||||
expect(stelleBenennen(["struktur", "abschnitte", 2, "schritte", 0, "titel"])).toBe(
|
||||
"Abschnitt 03, Schritt 1: ",
|
||||
);
|
||||
expect(stelleBenennen(["variablen", 1, "schluessel"])).toBe("Variable 2: ");
|
||||
expect(stelleBenennen(["abschnitte", 0, "schritte", 3, "konfig", "optionen", 1])).toBe(
|
||||
"Abschnitt 01, Schritt 4, Option 2: ",
|
||||
);
|
||||
});
|
||||
|
||||
it("liefert nichts, wenn der Pfad keine Stelle beschreibt", () => {
|
||||
// Dann bleibt die Meldung des Schemas fuer sich allein stehen – besser als
|
||||
// ein leerer Doppelpunkt davor.
|
||||
expect(stelleBenennen(["name"])).toBe("");
|
||||
expect(stelleBenennen([])).toBe("");
|
||||
});
|
||||
|
||||
it("nennt die Stelle in der Reihenfolge, in der man sie sucht", () => {
|
||||
// Erst der Abschnitt, dann der Schritt darin – nicht umgekehrt.
|
||||
const stelle = stelleBenennen(["abschnitte", 9, "schritte", 11, "titel"]);
|
||||
expect(stelle.indexOf("Abschnitt")).toBeLessThan(stelle.indexOf("Schritt"));
|
||||
expect(stelle).toBe("Abschnitt 10, Schritt 12: ");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user