Files
sendewerk/docs/ACCEPTANCE.md
T
2026-10-21 21:05:57 +02:00

8.2 KiB

Abnahme

Etappe 1

Kriterium Nachweis Stand
Frischer Checkout startet ohne Cloudron npm ci erfolgreich; README-Setup und lokaler Produktionsstart ausgeführt erfüllt am 21.10.2026
Typprüfung und Build erfolgreich npm run check, npm run build erfüllt am 21.10.2026
Theme bleibt nach Neuladen erhalten Playwright: System auf Hell wechseln, Reload, DOM und Schalterzustand prüfen erfüllt am 21.10.2026
Testdaten überleben Neustart Gebauten Server zweimal gegen .data/sendewerk.sqlite gestartet; Fundusdaten und /healthz jeweils vorhanden erfüllt am 21.10.2026
Migration wiederholt ausführbar lokal mehrfach ausgeführt; Verhaltenstest führt Migration zweimal in temporärer DB aus erfüllt am 21.10.2026
Seed reproduzierbar lokal und im Verhaltenstest zweimal ausgeführt; danach 4 Pieces, 1 Sendung und 3 Verwendungen erfüllt am 21.10.2026
Tests verwenden getrennte Daten Vitest und Playwright erzeugen je eigene Datenbank im Betriebssystem-Tempdir erfüllt am 21.10.2026
Desktop und Smartphone ohne horizontales Scrollen 8 Playwright-Abläufe bei 390, 768, 960, 1280 und 1440 Pixeln; Screenshots visuell kontrolliert erfüllt am 21.10.2026
Kompakte Arbeitsoberfläche in beiden Farbmodi 390, 768 und 1440 Pixel jeweils in Light/Dark; einspaltige Mobilkarten, lange Titel, Metadatenumbrüche und Leerzustände erfüllt am 21.10.2026
Cloudron-Pfade und Healthcheck vorbereitet Manifestpfad /app/data/sendewerk.sqlite, /healthz, start.sh; JSON-Kernfelder und Bash-Syntax geprüft vorbereitet; Container offen
Echte Cloudron-Prüfung Installation, Backup/Restore, Proxy und read-only Laufzeit offen, kein Serverzugang

Ausgeführte Prüfungen

  • npm ci: erfolgreich, 190 Pakete geprüft, 0 gemeldete Schwachstellen
  • npm run setup, anschließend erneute Migration und erneuter Seed: erfolgreich
  • npm test: 2 Verhaltenstests erfolgreich
  • npm run lint: erfolgreich
  • npm run check: 0 Fehler und 0 Warnungen
  • npm run build: erfolgreich mit @sveltejs/adapter-node
  • npm run test:e2e: 8 von 8 Browsertests erfolgreich; 390, 768 und 1440 Pixel jeweils in Light- und Darkmode sowie Tastaturbedienung, feste Navigation, einspaltige Funduskarten, lange Inhalte und Überläufe geprüft
  • Zwei getrennte npm start-Läufe: Healthcheck und persistente Daten erfolgreich
  • bash -n start.sh und programmatische Manifest-Kernfeldprüfung: erfolgreich

Nicht erfolgreich oder nicht ausführbar

  • docker build -t sendewerk:local .: nicht ausgeführt, weil der installierte Docker-Client keinen laufenden Daemon unter /var/run/docker.sock erreichen konnte.
  • Echte Cloudron-Installation: mangels Serverzugang nicht ausgeführt.
  • Ein zusätzlicher Python-Playwright-Lauf: nicht gestartet, weil das optionale Python-Modul playwright nicht installiert war. Die projektgebundene TypeScript-Playwright-Suite lief stattdessen vollständig erfolgreich.

Etappe 2

Kriterium Nachweis Stand
Erstadmin danach geschlossen Browser-Setup sowie wiederholter Service-Aufruf geprüft; Seed enthält kein Konto erfüllt am 21.10.2026
Login, Logout und lokales HTTP Browserablauf; HttpOnly, SameSite=Lax, ohne Secure bei expliziter HTTP-Origin erfüllt am 21.10.2026
Einladung und Reset lokale Outbox bis Kontoaktivierung und neuem Login im Browser durchlaufen erfüllt am 21.10.2026
Einmalige und abgelaufene Links Verhaltenstests für Wiederverwendung und Ablauf von Einladung und Reset erfüllt am 21.10.2026
Direkte Admin-Aktion verweigert Thekencrew-POST auf Einladungsaction liefert 403 erfüllt am 21.10.2026
Sperrung entzieht Zugriff aktive Thekencrew-Sitzung wird gelöscht und beim nächsten Request abgewiesen erfüllt am 21.10.2026
Keine echte Mail ungefragt Browser- und Verhaltenstests nutzen ausschließlich temporäre lokale Outbox erfüllt am 21.10.2026
Echter SMTP-Versand nicht ausgeführt, keine Zugangsdaten bereitgestellt offen

Ausgeführte Prüfungen Etappe 2

  • npm run lint: erfolgreich
  • npm run check: 0 Fehler und 0 Warnungen
  • npm test: 9 Auth-, Migrations-, Mail- und Dauer-Verhaltenstests erfolgreich
  • npm run build: erfolgreich mit @sveltejs/adapter-node
  • npm run test:e2e: 9 von 9 Browsertests erfolgreich; Erstadmin, Login/Logout, fremder Origin, Einladung, direkte Rollenprüfung, Sperrung, Reset sowie bestehende responsive Arbeitsansichten geprüft
  • Lokale Outbox in isolierten temporären Verzeichnissen geprüft
  • Lokaler Produktionsserver der Browsertests über HTTP gestartet; Healthcheck und Migration vor Start erfolgreich
  • bash -n start.sh: erfolgreich

Etappe 3

Kriterium Nachweis Stand
Anlegen, Bearbeiten, Suchen, Filtern und Reload Browserrundlauf mit Vorlage, Autosave, Quellen, Status, Suche und Neuladen erfüllt am 21.10.2026
Taxonomien unabhängig Format einzeln sowie Themen und Abschnittskategorien mehrfach gespeichert und gefiltert erfüllt am 21.10.2026
Sicheres Markdown Verhaltenstest und Browservorschau entfernen Skript/JavaScript, Formatierung bleibt erhalten erfüllt am 21.10.2026
Private Bilder Signatur-/Größenprüfung; anonymer Direktrequest erhält keinen Dateiinhalt erfüllt am 21.10.2026
Sichtbare Speicherfehler Actionfehler und Autosave-Fehlerstatus bleiben am Formular sichtbar erfüllt am 21.10.2026
Konflikterkennung zwei Browserseiten; veraltete Revision erhält Konflikt und überschreibt die neue Fassung nicht erfüllt am 21.10.2026
Archiv und Wiederherstellung Browserrundlauf blendet Piece aus und stellt den vorherigen Status wieder her erfüllt am 21.10.2026
Duplikat Verhaltenstest und Browser prüfen unabhängige Kopie samt Zuordnungen und Bild erfüllt am 21.10.2026

Ausgeführte Prüfungen Etappe 3

  • npm run lint: erfolgreich
  • npm run check: 0 Fehler und 0 Warnungen
  • npm test: 13 Tests in 3 Dateien erfolgreich
  • npm run build: erfolgreich mit @sveltejs/adapter-node
  • npm run test:e2e: 10 von 10 Browsertests erfolgreich
  • Browserprüfung bei 390, 768, 960, 1280 und 1440 Pixeln in beiden Themes ohne ungewollten horizontalen Überlauf
  • Mobile Darkmode-Aufnahme des Piece-Editors visuell kontrolliert
  • bash -n start.sh und git diff --check: erfolgreich