# auth/signin.yaml
# Smoke-test: App startet, Sign-in-Screen ist erreichbar, Login mit Test-User funktioniert.
# Selektor-Strategie: text: fuer statische Platzhalter (de.json-Werte, die sich
# nicht via Locale-Wechsel aendern sollten im Test-Setup). Falls i18n-Locale
# in CI auf 'en' steht, MUSS dieser Flow mit E2E_LOCALE=de laufen.
#
# Pre-requisite: App installiert, kein aktiver Auth-State (clearState loesche den).
# Env-Vars: E2E_TEST_USER (username ohne @rebreak.internal), E2E_TEST_PASSWORD

appId: org.rebreak.app
---
- launchApp:
    clearState: true

# Warten bis die Auth-Screens geladen sind (Splash kann kurz blockieren)
- waitForAnimationToEnd:
    timeout: 5000

# Sign-in-Screen sollte direkt erscheinen (kein Auth-State nach clearState).
# Fallback: falls Onboarding/Landing dazwischenkommt, muessen wir erst weiterklicken.
# Aktuell zeigt _layout.tsx direkt (auth)-Group wenn kein User.
- assertVisible:
    text: "E-Mail"

# E-Mail-Feld benutzt placeholder-Text "E-Mail" (auth.emailPlaceholder in de.json).
# Kein testID gesetzt -> text-Selektor auf Placeholder ist stabiler als Index.
- tapOn:
    text: "E-Mail"
- inputText: ${E2E_TEST_USER}@rebreak.internal

- tapOn:
    text: "Passwort"
- inputText: ${E2E_TEST_PASSWORD}

# Submit-Button: Text "Anmelden" (auth.signin). Keine testID vorhanden.
- tapOn:
    text: "Anmelden"

# Nach erfolgreichem Login landet der User auf dem Home-Feed ((app)-Group).
# ComposeCard ist das erste sichtbare Element nach AppHeader.
# Wir pruefen auf den App-Header (AppName via t('appHeader.appName')).
# Alternativ koennte hier auf einen Post-Feed-Element gewartet werden.
- waitForAnimationToEnd:
    timeout: 8000

# Sanity: Dropdown-Menu-Trigger (Avatar im Header) muss sichtbar sein.
# Kein testID -> assertVisible auf AppName-Text (de.json: appHeader.appName = "ReBreak")
- assertVisible:
    text: "ReBreak"
