# blocker/vpn-activate-verify.yaml
#
# Zweck: VERIFIZIERT den Android-16-FGS-Fix (systemExempted → specialUse).
#   Loggt ein → Blocker → tippt WIRKLICH "VPN aktivieren" → Confirm-Sheet →
#   System-VPN-Dialog "OK". Das löst RebreakVpnService.startForeground aus —
#   genau die Stelle, die auf Android 16 mit systemExempted crashte.
#
# Verdikt kommt aus parallelem logcat (extern):
#   FEHLER  → "SecurityException: Starting FGS with type ..."  (Fix kaputt)
#   ERFOLG  → kein FGS-SecurityException + "VPN established" / TUN aktiv
#
# Voraussetzung:
#   - Android-16-Emulator (API 36.x) ODER echtes Gerät, App (Debug) installiert.
#   - Test-Account auf Staging mit Schutz AUS (sonst kein "VPN aktivieren"-Button).
#   - Env: E2E_TEST_USER, E2E_TEST_PASSWORD (via `infisical run -- maestro test ...`).
#
# Run:
#   infisical run -- maestro test --env=E2E_LOCALE=de \
#     apps/rebreak-native/.maestro/blocker/vpn-activate-verify.yaml

appId: org.rebreak.app
---
- launchApp:
    clearState: true
- waitForAnimationToEnd:
    timeout: 5000

# --- Login ---
- 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 ---
- tapOn:
    text: "Blocker"
- waitForAnimationToEnd:
    timeout: 4000
- assertVisible:
    text: "ReBreak-Schutz"

# Schutz ggf. erst antippen (Karte), damit der Setup-Flow erscheint.
- tapOn:
    text: "Tippe um den Schutz zu aktivieren"
    optional: true
- waitForAnimationToEnd:
    timeout: 2000

# --- VPN aktivieren (DAS löst startForeground aus) ---
- tapOn:
    text: "VPN aktivieren"
- waitForAnimationToEnd:
    timeout: 2000

# Confirm-Sheet (Anti-Blind-Klick-Gate): Häkchen + Weiter. Optional, falls der
# Blocker-Screen anders gated als das Onboarding.
- tapOn:
    text: "Ich hab’s verstanden"
    optional: true
- tapOn:
    text: "Weiter"
    optional: true
- waitForAnimationToEnd:
    timeout: 2000

# --- System-VPN-Consent-Dialog (außerhalb der App) ---
# Android zeigt "Verbindungsanfrage … VPN einrichten?". Button-Text variiert
# (OK / Zulassen / Allow) — wir versuchen mehrere.
- tapOn:
    text: "OK"
    optional: true
- tapOn:
    text: "Zulassen"
    optional: true
- tapOn:
    text: "Allow"
    optional: true

# startVpn() läuft jetzt: establish() → startForeground(specialUse). Kurz warten,
# damit der FGS-Aufruf im logcat landet.
- waitForAnimationToEnd:
    timeout: 6000

# App lebt noch (kein Crash) → Blocker-Screen weiterhin sichtbar.
- assertVisible:
    text: "ReBreak-Schutz"
