Files
beauty-bookings/docs/test-checkliste-statusseite.md
elpatron 86a73f2c16 docs: Umfassende Blackbox-Test-Checkliste für Statusseite
- 16 Hauptkategorien mit >150 Testfällen
- Alle Status-Typen abgedeckt (pending/confirmed/cancelled/completed)
- E-Mail-Integration und ICS-Dateien
- Stornierungslogik und Zeitvalidierung
- UI/UX, Performance und Accessibility
- Sicherheit und Edge Cases
- Browser-Kompatibilität
- Testergebnis-Bereich für Dokumentation
2025-10-01 13:17:55 +02:00

10 KiB

Blackbox Test-Checkliste: Kunden-Statusseite

Branch: Statusseite
Feature: Token-basierte Buchungsübersicht mit integrierter Stornierung
Datum: 2025-10-01

Vorbereitung

  • Entwicklungsserver läuft (pnpm dev)
  • E-Mail-Service konfiguriert (RESEND_API_KEY gesetzt)
  • Admin-Account verfügbar
  • Testbehandlungen vorhanden
  • Verfügbare Slots erstellt

1. Buchungserstellung & Token-Generierung

1.1 Neue Buchung (Status: pending)

  • Buchung über Formular erstellen
  • Pending-E-Mail erhalten
  • Status-Link (/booking/{token}) in E-Mail vorhanden
  • Button "Status ansehen" vorhanden und korrekt verlinkt
  • Link funktioniert beim Klick

1.2 Token-Validierung

  • Gültiger Token öffnet Statusseite
  • Ungültiger Token zeigt Fehlermeldung
  • Abgelaufener Token zeigt entsprechende Meldung
  • Token ohne Parameter zeigt Fehler

2. Statusseite UI/UX (Allgemein)

2.1 Layout & Design

  • Logo wird angezeigt
  • Seite ist responsive (Desktop, Tablet, Mobile)
  • Alle Texte sind auf Deutsch
  • Farben entsprechen dem Branding (Pink/Purple)
  • "Zurück zur Startseite" Link funktioniert

2.2 Navigation

  • Link zur Startseite funktioniert
  • Browser-Zurück-Button funktioniert korrekt
  • URL ist teilbar (Copy & Paste)

3. Status: Pending ( Wartet auf Bestätigung)

3.1 Anzeige

  • Status-Badge zeigt " Wartet auf Bestätigung" (gelb)
  • Banner mit gelber Hintergrundfarbe
  • Text erklärt, dass Termin geprüft wird
  • Alle Termin-Details werden angezeigt:
    • Datum (Format: dd.mm.yyyy)
    • Uhrzeit
    • Behandlung
    • Dauer in Minuten
    • Preis (wenn > 0)
  • Kundendaten werden angezeigt:
    • Name
    • E-Mail
    • Telefon
    • Notizen (falls vorhanden)

3.2 Stornierung

  • Stornierungsbereich ist NICHT sichtbar (pending kann nicht storniert werden)
  • Keine Stornierungsbuttons vorhanden

4. Status: Confirmed (✓ Bestätigt)

4.1 Statuswechsel

  • Admin bestätigt Buchung
  • Confirmed-E-Mail wird versendet
  • E-Mail enthält "Termin verwalten" Button
  • Link in E-Mail zeigt auf /booking/{token}
  • ICS-Datei ist im E-Mail-Anhang
  • AGB-PDF ist im E-Mail-Anhang

4.2 Anzeige

  • Status-Badge zeigt "✓ Bestätigt" (grün)
  • Banner mit grüner Hintergrundfarbe
  • Text bestätigt den Termin
  • "Verbleibende Zeit" wird angezeigt (wenn Zukunft)
  • Stunden bis zum Termin werden berechnet und angezeigt

4.3 Stornierung (wenn möglich)

  • Stornierungsbereich ist sichtbar
  • Hinweistext zur Stornierungsfrist wird angezeigt
  • Button "Termin stornieren" ist vorhanden
  • Klick auf Button zeigt Bestätigungsdialog
  • Bestätigungsdialog enthält:
    • Warnhinweis in rot
    • "Ja, stornieren" Button
    • "Abbrechen" Button
  • "Abbrechen" schließt Dialog ohne Aktion
  • "Ja, stornieren" führt Stornierung durch
  • Nach Stornierung: Erfolgsmeldung wird angezeigt
  • Nach Stornierung: Status aktualisiert sich

4.4 Stornierung (nicht mehr möglich)

  • Termin < 24h (oder MIN_STORNO_TIMESPAN): Kein Stornierungsbutton
  • Gelber Hinweiskasten wird angezeigt
  • Text erklärt, dass Frist abgelaufen ist
  • Kontakthinweis wird angezeigt

5. Status: Cancelled (✕ Storniert)

5.1 Nach Stornierung

  • Status-Badge zeigt "✕ Storniert" (rot)
  • Banner mit roter Hintergrundfarbe
  • Text erklärt, dass Termin storniert wurde
  • Hinweis auf Neubuchung wird angezeigt
  • Stornierungsbereich ist nicht mehr sichtbar

5.2 Cancelled-E-Mail

  • E-Mail wird an Kunden gesendet
  • E-Mail enthält storniertes Datum
  • E-Mail enthält Hinweis auf Neubuchung

6. Status: Completed (✓ Abgeschlossen)

6.1 Anzeige

  • Status-Badge zeigt "✓ Abgeschlossen" (grau)
  • Banner mit grauer Hintergrundfarbe
  • Dankestext wird angezeigt
  • Stornierungsbereich ist nicht sichtbar
  • Alle Termin-Details bleiben sichtbar

7. E-Mail-Integration

7.1 Pending-Mail

  • Betreff: "Deine Terminanfrage ist eingegangen"
  • Enthält orangefarbenen "Status ansehen" Button
  • Link funktioniert
  • Text erklärt, dass Bestätigung folgt
  • Rechtliche Informationen enthalten

7.2 Confirmed-Mail

  • Betreff: "Dein Termin wurde bestätigt - AGB im Anhang"
  • Enthält pinken "Termin ansehen & verwalten" Button (statt rot "Termin stornieren")
  • Link zeigt auf /booking/{token}
  • ICS-Datei im Anhang
  • ICS-Datei hat korrekten Namen: "Termin_Stargirlnails.ics"
  • ICS-Datei kann in Kalender importiert werden
  • AGB-PDF im Anhang
  • AGB-PDF heißt "AGB_Stargirlnails_Kiel.pdf"

7.3 Cancelled-Mail

  • Betreff: "Dein Termin wurde abgesagt"
  • Text erklärt Stornierung
  • Hinweis auf Neubuchung
  • Rechtliche Informationen enthalten

8. ICS-Kalendereinträge

8.1 ICS-Datei Inhalt

  • Zeitzone: Europe/Berlin
  • Startzeit korrekt
  • Endzeit korrekt (Startzeit + Behandlungsdauer)
  • Titel: "{Behandlung} - Stargirlnails Kiel"
  • Location: "Stargirlnails Kiel"
  • Beschreibung enthalten
  • 24h-Erinnerung konfiguriert

8.2 Kalender-Import

  • Outlook: Import funktioniert
  • Google Calendar: Import funktioniert (wenn möglich zu testen)
  • Apple Calendar: Import funktioniert (wenn möglich zu testen)
  • Termin erscheint im Kalender mit korrekter Zeit
  • Erinnerung wird 24h vorher ausgelöst

9. Stornierungslogik

9.1 Zeitbasierte Validierung

  • Termin > 24h in Zukunft: Stornierung möglich
  • Termin < 24h in Zukunft: Stornierung nicht möglich
  • Termin in Vergangenheit: Stornierung nicht möglich
  • Korrekte Berechnung der verbleibenden Stunden

9.2 Statusbasierte Validierung

  • Status "pending": Keine Stornierung möglich
  • Status "confirmed": Stornierung möglich (wenn Zeitfrist OK)
  • Status "cancelled": Keine Stornierung möglich
  • Status "completed": Keine Stornierung möglich

9.3 Stornierungsablauf

  • Bestätigungsdialog erscheint
  • Loading-Spinner während Stornierung
  • Erfolgsmeldung nach Stornierung
  • Fehlermeldung bei Fehler
  • Token wird NICHT invalidiert nach Stornierung
  • Slot wird wieder freigegeben
  • Status aktualisiert sich auf Seite

10. Fehlerbehandlung

10.1 Ungültige Token

  • Nicht existierender Token: Fehlermeldung
  • Abgelaufener Token: Fehlermeldung
  • Leerer Token: Fehlermeldung
  • Fehlermeldung ist benutzerfreundlich (Deutsch)

10.2 Netzwerkfehler

  • API nicht erreichbar: Fehlermeldung
  • Timeout: Fehlermeldung
  • Fehler während Stornierung: Fehlermeldung bleibt sichtbar

10.3 Validierungsfehler

  • Stornierung außerhalb Frist: Klare Fehlermeldung
  • Bereits stornierter Termin: Fehlermeldung

11. Performance & Ladezeiten

  • Statusseite lädt in < 2 Sekunden
  • Keine sichtbaren Layout-Shifts
  • Loading-Spinner wird während Laden angezeigt
  • Bilder werden optimiert geladen
  • Keine JavaScript-Fehler in Browser-Console

12. Accessibility & Browser-Kompatibilität

12.1 Accessibility

  • Buttons sind mit Tastatur erreichbar
  • Fokus-Indikatoren sind sichtbar
  • Farbkontraste sind ausreichend (WCAG AA)
  • Alt-Texte für Bilder vorhanden

12.2 Browser

  • Chrome (aktuell): Funktioniert
  • Firefox (aktuell): Funktioniert
  • Safari (wenn möglich): Funktioniert
  • Edge (aktuell): Funktioniert
  • Mobile Browser (iOS/Android): Funktioniert

12.3 Responsive Design

  • Desktop (>1024px): Layout korrekt
  • Tablet (768px-1024px): Layout korrekt
  • Mobile (320px-767px): Layout korrekt
  • Touch-Targets ausreichend groß (min. 44x44px)

13. Sicherheit

13.1 Token-Sicherheit

  • Token ist ausreichend lang (UUID)
  • Token ist nicht vorhersagbar
  • Token läuft nach 30 Tagen ab
  • Abgelaufene Token werden abgelehnt

13.2 Datenschutz

  • Keine sensiblen Daten in URLs außer Token
  • Keine Kundendaten in Browser-Console geloggt
  • E-Mail-Adressen werden nicht im Klartext im HTML angezeigt
  • Telefonnummern geschützt

14. Rückwärts-Kompatibilität

14.1 Legacy-Routen

  • /cancel/{token} funktioniert NICHT (bewusst entfernt)
  • Alte Links in E-Mails zeigen auf neue Route
  • Bestehende Tokens funktionieren weiterhin

14.2 Datenbank-Kompatibilität

  • Alte Buchungen werden korrekt angezeigt
  • Alte Tokens funktionieren mit neuem Code
  • Migration ist nicht erforderlich

15. Edge Cases

15.1 Extremwerte

  • Sehr lange Behandlungsnamen werden korrekt dargestellt
  • Sehr lange Notizen werden korrekt dargestellt
  • Sehr hohe Preise werden korrekt formatiert
  • Termin weit in Zukunft (> 30 Tage): Token abgelaufen

15.2 Sonderfälle

  • Termin heute um 23:59: Stornierungsfrist korrekt berechnet
  • Termin während Sommerzeit/Winterzeit-Wechsel: Korrekt
  • Mehrere Buchungen desselben Kunden: Jede hat eigenen Token
  • Gleichzeitiger Zugriff auf Statusseite: Kein Konflikt

16. Integration mit bestehendem System

16.1 Admin-Panel

  • Buchungen werden im Admin-Panel angezeigt
  • Statusänderungen im Admin-Panel reflektieren sich auf Statusseite
  • Admin erhält weiterhin E-Mail-Benachrichtigungen

16.2 Slot-Management

  • Stornierung gibt Slot frei
  • Freigegebener Slot ist sofort buchbar
  • Keine Slot-Konflikte

16.3 E-Mail-System

  • E-Mails werden zuverlässig versendet
  • Anhänge werden korrekt zugestellt
  • CC an Admin funktioniert (bei confirmed)

Testergebnisse

Getestet von: _________________
Datum: _________________
Browser/Gerät: _________________

Kritische Fehler (Blocker)

(Hier kritische Fehler eintragen, die Release verhindern)

Mittelschwere Fehler

(Hier mittelschwere Fehler eintragen, die behoben werden sollten)

Kleinere Probleme

(Hier kleinere Verbesserungsvorschläge eintragen)

Gesamtbewertung

  • Alle Tests bestanden - Release-fähig
  • ⚠️ Tests bestanden mit kleineren Problemen
  • Kritische Fehler gefunden - Nachbesserung erforderlich

Notizen

(Hier zusätzliche Beobachtungen und Anmerkungen eintragen)