feat(vorlagen): Editor, Liste und Versionsgeschichte (#24)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s

This commit was merged in pull request #24.
This commit is contained in:
2026-09-25 08:23:22 +00:00
parent d8d5444e9f
commit e3d80e5982
65 changed files with 5454 additions and 103 deletions
+39
View File
@@ -3,6 +3,7 @@ import { Betriebsmodus } from "@/generated/prisma/enums";
import {
versionMitAufbau,
versionsHistorie,
vorlageHolen,
vorlagenFilterwerte,
vorlagenListe,
} from "@/server/queries/vorlagen";
@@ -153,4 +154,42 @@ describe.runIf(datenbankVerfuegbar)("Mandantensicht auf Vorlagen", () => {
expect(await vorlagenListe(techniker)).toHaveLength(3);
});
});
describe("Einzelne Vorlage", () => {
it("gibt eine fremde Vorlage nicht heraus", async () => {
// Die Vorlagenseite haengt allein an dieser Funktion. Gaebe sie die Zeile
// heraus, staenden Name, Beschreibung und Versionsgeschichte offen – die
// Kennung steht in jedem Link, den jemand weitergibt.
const { techniker, fremde, meine, globale } = await aufbau();
expect(await vorlageHolen(fremde.vorlage.id, techniker)).toBeUndefined();
expect(await vorlageHolen(meine.vorlage.id, techniker)).toBeDefined();
expect(await vorlageHolen(globale.vorlage.id, techniker)).toBeDefined();
});
it("gibt einem Administrator auch eine fremde heraus", async () => {
const { admin, fremde } = await aufbau();
expect(await vorlageHolen(fremde.vorlage.id, admin)).toBeDefined();
});
it("liefert dieselben Felder wie die Liste", async () => {
// Zwei Lesemodelle fuer dieselbe Zeile laufen auseinander; deshalb bauen
// beide aus derselben Auswahl. Der Test haelt das fest.
const { techniker, meine } = await aufbau();
const ausListe = (await vorlagenListe(techniker, { auchArchivierte: true })).find(
(zeile) => zeile.id === meine.vorlage.id,
);
expect(await vorlageHolen(meine.vorlage.id, techniker)).toEqual(ausListe);
});
it("findet auch eine archivierte Vorlage", async () => {
// Die Seite muss sie zeigen koennen, sonst liesse sich nichts freigeben.
const { techniker, meine } = await aufbau();
await testPrisma.vorlage.update({
where: { id: meine.vorlage.id },
data: { archiviert: true },
});
const zeile = await vorlageHolen(meine.vorlage.id, techniker);
expect(zeile?.archiviert).toBe(true);
});
});
});