# 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"