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
+36 -2
View File
@@ -10,8 +10,13 @@
* pnpm docs:screenshots --ziel m0 nach docs/screenshots/m0/
* pnpm docs:screenshots --nur uebersicht nur diese Seite
*
* Voraussetzung: die App laeuft (pnpm start oder pnpm dev). Adresse ueber
* E2E_APP_URL, Standard http://127.0.0.1:3000.
* Voraussetzung: die App laeuft als **gebauter Stand** (pnpm build && pnpm start).
* Adresse ueber E2E_APP_URL, Standard http://127.0.0.1:3000.
*
* Ausdruecklich nicht gegen `pnpm dev`: dort haengt das Entwickler-Overlay im
* Bild, und in dieser Umgebung hydriert der Entwicklungsmodus gar nicht — ein
* Bild sieht dann richtig aus, zeigt aber eine Seite, auf der kein Knopf etwas
* tut. Siehe CLAUDE.md, Abschnitt „Oberflaeche pruefen“.
*/
import { mkdir } from "node:fs/promises";
import { join } from "node:path";
@@ -64,6 +69,35 @@ const SEITEN: readonly Seite[] = [
},
{ name: "admin-benutzer", pfad: "/admin/benutzer" },
{ name: "kunden", pfad: "/kunden", nurModus: "DIENSTLEISTUNG" },
{ name: "vorlagen-liste", pfad: "/vorlagen" },
/*
* Vorlagenseite und Editor haengen an Kennungen, die je Datenbank anders sind.
* Statt sie zu erraten, geht das Skript den Weg, den auch ein Redakteur geht:
* von der Liste aus klicken. Bricht der Weg, bricht der Screenshot — und das
* ist die richtige Antwort, denn dann ist die Oberflaeche kaputt.
*/
{
name: "vorlagen-seite",
pfad: "/vorlagen",
vorbereiten: async (tab) => {
await tab
.getByRole("link", { name: /PC-Neuinstallation/ })
.first()
.click();
await tab.waitForURL(/\/vorlagen\/[^/]+$/);
},
},
{
name: "vorlagen-editor",
pfad: "/vorlagen",
vorbereiten: async (tab) => {
await tab
.getByRole("link", { name: /Entwurf öffnen/ })
.first()
.click();
await tab.waitForURL(/\/vorlagen\/version\/[^/]+$/);
},
},
];
function argument(name: string): string | undefined {