# XCUITest Authoring ## Required Architecture - Put shared test infrastructure in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Framework`. - Put feature suites in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/CaseraUITests/Tests`. - Every test suite inherits `BaseUITestCase`. - Reusable multi-step setup belongs in `TestFlows`. - UI interactions should go through screen objects in `ScreenObjects.swift`. ## Runtime Contract - Launch args are standardized in `BaseUITestCase`: - `--ui-testing` - `--disable-animations` - `--reset-state` - App-side behavior for UI test mode is implemented in `/Users/treyt/Desktop/code/MyCribKMM/iosApp/iosApp/Helpers/UITestRuntime.swift`. ## Naming - Test method naming format: `test_()`. - Case IDs should stay stable once committed. ## Waiting and Flake Rules - Use helper waits from `BaseUITestCase` extensions. - Do not add blind `sleep()`. - Prefer stable accessibility identifiers over visible text selectors.