# screens/marketing-tour.yaml
#
# Maestro Marketing-Tour — alle 9 Screenshots in einem Lauf
#
# Dieser Flow führt nacheinander alle 9 Marketing-Screens an und macht je einen
# takeScreenshot. Maestro speichert Screenshots unter ~/.maestro/tests/<timestamp>/
# Das capture-marketing.sh Script benennt sie in 01-onboarding.png … 09-geraete.png um.
#
# REIHENFOLGE KRITISCH — entspricht der Reihenfolge auf der Preview-Seite:
#   01 Onboarding   → Sign-in-Screen (neuer Nutzer, clearState)
#   02 Blocker      → Blocker-Tab mit Schutz-Status
#   03 Blocked      → MANUELL (VPN außerhalb App) — Proxy: Header-Dropdown
#   04 SOS/Lyra     → SOS-Screen mit Lyra-Antwort + Chips
#   05 Breathing    → BreathingDrawer geöffnet
#   06 Mail-Schutz  → Mail-Tab
#   07 Community    → Home-Feed mit Posts
#   08 Streak       → Profil-StreakSection
#   09 Geräte       → Devices-Screen
#
# Wichtig: Flow bricht nach dem letzten takeScreenshot ab — keine Assertions danach.
# Jeder Abschnitt setzt den App-State via launchApp + clearState zurück.
#
# HINWEIS 03-blocked:
# Der echte Block-Screen ist außerhalb der App (Safari + VPN). Dieser Flow macht
# einen Proxy-Screenshot des Header-Dropdowns. Für den echten Shot: manuell.
#
# FRAGILE STEPS (brauchen testID-Ergänzung für Robustheit):
#   - Avatar-Tap (93%, 6%) in allen Flows → testID="header-avatar-btn"
#   - SOS-Send-Button → testID="sos-send-btn"
#   - Settings→Geräte Navigation
#
# Env-Vars: E2E_TEST_USER, E2E_TEST_PASSWORD
# Voraussetzung: iOS Simulator mit Status-Bar via xcrun simctl status_bar überschrieben
#               (Details in capture-marketing.sh)

appId: org.rebreak.app

---

# ══════════════════════════════════════════════════════════
# 01 — ONBOARDING / WILLKOMMEN
# Sign-in-Screen als "erster Blick" für neue Nutzer
# ══════════════════════════════════════════════════════════
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 6000
- assertVisible:
    text: "E-Mail"
- waitForAnimationToEnd:
    timeout: 2000
- takeScreenshot: screenshots/01-onboarding

# ══════════════════════════════════════════════════════════
# 02 — BLOCKER AKTIV
# ══════════════════════════════════════════════════════════
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 5000
- assertVisible:
    text: "E-Mail"
- tapOn:
    text: "E-Mail"
- inputText: ${E2E_TEST_USER}@rebreak.internal
- tapOn:
    text: "Passwort"
- inputText: ${E2E_TEST_PASSWORD}
- tapOn:
    text: "Anmelden"
- waitForAnimationToEnd:
    timeout: 10000
- assertVisible:
    text: "ReBreak"
- tapOn:
    text: "Blocker"
- waitForAnimationToEnd:
    timeout: 4000
- assertVisible:
    text: "ReBreak-Schutz"
- scrollUntilVisible:
    element:
      text: "URL-Filter"
    direction: DOWN
    timeout: 5000
- waitForAnimationToEnd:
    timeout: 1000
- takeScreenshot: screenshots/02-blocker

# ══════════════════════════════════════════════════════════
# 03 — BLOCKED (Proxy: Header-Dropdown als "Schutz greift")
# HINWEIS: Echter Block-Screen → manuell via Safari + VPN
# ══════════════════════════════════════════════════════════
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 5000
- assertVisible:
    text: "E-Mail"
- tapOn:
    text: "E-Mail"
- inputText: ${E2E_TEST_USER}@rebreak.internal
- tapOn:
    text: "Passwort"
- inputText: ${E2E_TEST_PASSWORD}
- tapOn:
    text: "Anmelden"
- waitForAnimationToEnd:
    timeout: 10000
- assertVisible:
    text: "ReBreak"
# Blocker-Tab zeigt den aktivsten "Schutz greift"-Screen ohne VPN
- tapOn:
    text: "Blocker"
- waitForAnimationToEnd:
    timeout: 4000
- assertVisible:
    text: "ReBreak-Schutz"
- takeScreenshot: screenshots/03-blocked

# ══════════════════════════════════════════════════════════
# 04 — SOS / LYRA
# ══════════════════════════════════════════════════════════
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 5000
- assertVisible:
    text: "E-Mail"
- tapOn:
    text: "E-Mail"
- inputText: ${E2E_TEST_USER}@rebreak.internal
- tapOn:
    text: "Passwort"
- inputText: ${E2E_TEST_PASSWORD}
- tapOn:
    text: "Anmelden"
- waitForAnimationToEnd:
    timeout: 10000
- assertVisible:
    text: "ReBreak"
# FRAGILE: Avatar-Tap Koordinaten bis testID="header-avatar-btn" gesetzt
- tapOn:
    id: "header-avatar-btn"
- waitForAnimationToEnd:
    timeout: 2000
- assertVisible:
    text: "SOS"
- tapOn:
    text: "SOS"
- waitForAnimationToEnd:
    timeout: 12000
- assertVisible:
    text: "Was beschäftigt dich?"
- tapOn:
    text: "Was beschäftigt dich?"
- waitForAnimationToEnd:
    timeout: 500
- inputText: "Ich weiß nicht mehr weiter."
- pressKey: Return
- waitForAnimationToEnd:
    timeout: 20000
- assertVisible:
    text: "Atemübung"
- waitForAnimationToEnd:
    timeout: 1000
- takeScreenshot: screenshots/04-sos-lyra

# ══════════════════════════════════════════════════════════
# 05 — ATEMÜBUNG
# BreathingDrawer bleibt nach 04-sos-lyra noch offen →
# kein launchApp nötig, direkt tippen
# ══════════════════════════════════════════════════════════
- tapOn:
    text: "Atemübung"
- waitForAnimationToEnd:
    timeout: 3000
- assertVisible:
    text: "Atemübung"
- waitForAnimationToEnd:
    timeout: 1500
- takeScreenshot: screenshots/05-breathing

# ══════════════════════════════════════════════════════════
# 06 — MAIL-SCHUTZ
# ══════════════════════════════════════════════════════════
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 5000
- assertVisible:
    text: "E-Mail"
- tapOn:
    text: "E-Mail"
- inputText: ${E2E_TEST_USER}@rebreak.internal
- tapOn:
    text: "Passwort"
- inputText: ${E2E_TEST_PASSWORD}
- tapOn:
    text: "Anmelden"
- waitForAnimationToEnd:
    timeout: 10000
- assertVisible:
    text: "ReBreak"
- tapOn:
    text: "Mail"
- waitForAnimationToEnd:
    timeout: 4000
- assertVisible:
    text: "Mail-Schutz"
- waitForAnimationToEnd:
    timeout: 1000
- takeScreenshot: screenshots/06-mail-schutz

# ══════════════════════════════════════════════════════════
# 07 — COMMUNITY-FEED
# ══════════════════════════════════════════════════════════
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 5000
- assertVisible:
    text: "E-Mail"
- tapOn:
    text: "E-Mail"
- inputText: ${E2E_TEST_USER}@rebreak.internal
- tapOn:
    text: "Passwort"
- inputText: ${E2E_TEST_PASSWORD}
- tapOn:
    text: "Anmelden"
- waitForAnimationToEnd:
    timeout: 10000
- assertVisible:
    text: "ReBreak"
- scrollUntilVisible:
    element:
      text: "Was bewegt dich gerade?"
    direction: UP
    timeout: 4000
- assertVisible:
    text: "Was bewegt dich gerade?"
- scroll:
    direction: DOWN
    duration: 800
- waitForAnimationToEnd:
    timeout: 1500
- takeScreenshot: screenshots/07-community

# ══════════════════════════════════════════════════════════
# 08 — STREAK / PROFIL-STATS
# ══════════════════════════════════════════════════════════
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 5000
- assertVisible:
    text: "E-Mail"
- tapOn:
    text: "E-Mail"
- inputText: ${E2E_TEST_USER}@rebreak.internal
- tapOn:
    text: "Passwort"
- inputText: ${E2E_TEST_PASSWORD}
- tapOn:
    text: "Anmelden"
- waitForAnimationToEnd:
    timeout: 10000
- assertVisible:
    text: "ReBreak"
# FRAGILE: Koordinaten-Tap
- tapOn:
    id: "header-avatar-btn"
- waitForAnimationToEnd:
    timeout: 2000
- assertVisible:
    text: "Profil"
- tapOn:
    text: "Profil"
- waitForAnimationToEnd:
    timeout: 4000
- assertVisible:
    text: "Profil"
- scrollUntilVisible:
    element:
      text: "SCHUTZ-ABDECKUNG"
    direction: DOWN
    timeout: 6000
- assertVisible:
    text: "SCHUTZ-ABDECKUNG"
- waitForAnimationToEnd:
    timeout: 1000
- takeScreenshot: screenshots/08-streak

# ══════════════════════════════════════════════════════════
# 09 — GERÄTE-ÜBERSICHT
# ══════════════════════════════════════════════════════════
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 5000
- assertVisible:
    text: "E-Mail"
- tapOn:
    text: "E-Mail"
- inputText: ${E2E_TEST_USER}@rebreak.internal
- tapOn:
    text: "Passwort"
- inputText: ${E2E_TEST_PASSWORD}
- tapOn:
    text: "Anmelden"
- waitForAnimationToEnd:
    timeout: 10000
- assertVisible:
    text: "ReBreak"
# FRAGILE: Koordinaten-Tap
- tapOn:
    id: "header-avatar-btn"
- waitForAnimationToEnd:
    timeout: 2000
- assertVisible:
    text: "Einstellungen"
- tapOn:
    text: "Einstellungen"
- waitForAnimationToEnd:
    timeout: 3000
- scrollUntilVisible:
    element:
      text: "Geräte"
    direction: DOWN
    timeout: 5000
- tapOn:
    text: "Geräte"
- waitForAnimationToEnd:
    timeout: 4000
- assertVisible:
    text: "Dieses Gerät"
- waitForAnimationToEnd:
    timeout: 1000
- takeScreenshot: screenshots/09-geraete
