# Leadlotse 1.0 - Manueller Golden-Path-Testplan

Dieser Plan prueft Leadlotse in einer echten WordPress-Instanz (die PHPUnit-Tests
laufen gegen Stubs, nicht gegen WordPress). Er folgt der User Journey aus
UX-KONZEPT Abschnitt 3A und 3B und den messbaren Zielen aus Abschnitt 8.

Umgebung: WordPress 6.5+, PHP 8.1+, ein Standard-Theme (z.B. Twenty Twenty-Four),
ein Test-SMTP oder ein Mailcatcher, damit Mails sichtbar werden.

## A. Ankommen (Ziel: erstes Formular live in unter 5 Minuten)

1. Plugin aktivieren. Erwartung: Menue "Leadlotse" erscheint, die Seite zeigt den
   Willkommens-Screen mit Hans (Motiv 30) und genau einem Knopf.
2. Auf "Erstes Formular erstellen" klicken. Erwartung: Zweck-Galerie mit 8 Karten,
   Sprachumschalter DE/EN.
3. "Kontakt" waehlen. Erwartung: Formular wird angelegt, Builder oeffnet mit Feldern
   (Name, E-Mail, Nachricht, Einwilligung), Live-Vorschau und Einstellungen.
4. Ein Feld hinzufuegen, per Pfeil verschieben, wieder loeschen. Erwartung: Vorschau
   aktualisiert sich, das Einwilligungsfeld laesst sich nicht loeschen.
5. Status auf "Veroeffentlicht" stellen, speichern. Erwartung: Erfolgshinweis,
   Shortcode wird angezeigt.
6. Shortcode in eine neue Seite einfuegen, Seite veroeffentlichen, im Frontend oeffnen.
   Erwartung: Formular wird sauber gerendert, erbt Theme-Styles.

Zeit stoppen: Schritt 1 bis 6 soll in unter 5 Minuten machbar sein (Ziel 8.1).

## B. Arbeiten (Inbox)

7. Im Frontend das Formular ausfuellen und absenden. Erwartung: Danke-Meldung,
   Bestaetigungsmail an die eingegebene Adresse, Benachrichtigung an den Empfaenger.
8. JavaScript im Browser deaktivieren, erneut absenden. Erwartung: Formular wird
   trotzdem korrekt gesendet (progressive enhancement, Ziel aus D8).
9. Unter Leadlotse, Anfragen die Inbox oeffnen. Erwartung: die Anfrage erscheint,
   Status "Neu", Klick zeigt alle Felder und die Quelle.
10. Status auf "In Arbeit", dann "Erledigt" setzen. Erwartung: Badge und Liste
    aktualisieren sich sofort.
11. Auf "Antworten" klicken. Erwartung: E-Mail-Programm oeffnet mit der Adresse.

## C. Spam- und Datenschutz-Pruefung

12. Honeypot testen: per Entwicklerwerkzeug das versteckte Feld fuellen und senden.
    Erwartung: Anfrage wird still verworfen (keine neue Zeile in der Inbox).
13. Sehr schnell absenden (unter der Zeitfalle). Erwartung: freundliche Fehlermeldung.
14. Newsletter-Formular anlegen und absenden. Erwartung: Double-Opt-in-Mail, erst nach
    Klick auf den Bestaetigungslink gilt die Anmeldung als bestaetigt.
15. Unter Werkzeuge, Daten exportieren die E-Mail eingeben. Erwartung: die Anfrage
    taucht im Export auf. Danach Loeschung testen.

## D. Onboarding und Hans

16. Mit einem frischen Formular-Bestand die Formularliste oeffnen. Erwartung: die
    Checkliste "Klar zum Auslaufen" zeigt den Fortschritt und verschwindet, sobald
    alle vier Schritte erfuellt sind.
17. Drei Anfragen aelter als drei Tage im Status "Neu" simulieren. Erwartung: Hans
    weist in der Inbox darauf hin. Nach Bearbeitung verschwindet der Hinweis.
18. Unter den Core-Einstellungen Hans deaktivieren. Erwartung: keine Hans-Bilder und
    -Karten mehr, die Oberflaeche funktioniert unveraendert.

## E. Sprache

19. Ein Formular mit Sprache EN aus der Galerie anlegen. Erwartung: Felder, Datenschutz-
    text und Bestaetigungsmail sind englisch.

## F. Deinstallation

20. Unter den Einstellungen "Daten bei Deinstallation loeschen" aktivieren, Plugin
    loeschen. Erwartung: Tabellen und Optionen sind entfernt. Gegentest ohne die Option:
    Daten bleiben erhalten.

## Automatisierte Absicherung (bereits gruen)

* PHPUnit: 45 Tests, 228 Assertions (Entry-Speicherung, Spam-Kette, Conditional Logic,
  REST-Permissions, DOI-Token, Renderer, Vorlagen-Roundtrip).
* php -l ueber alle Quelldateien, JS-Syntaxpruefung fuer inbox.js und builder.js.

## Bekannte offene Punkte fuer die echte Instanz

* Gutenberg-Block im echten Editor laden (No-Build-Block, JS syntaktisch geprueft).
* WPCS/PHPCS-Lauf (Konfiguration steht aus).
* Englische Uebersetzung der Admin-Oberflaeche (leadlotse.pot liegt vor; Vorlagen-
  Inhalte sind bereits EN, die UI-Strings brauchen noch eine en_US-Uebersetzung).
