Refactor iOS UI tests to blueprint architecture and migrate legacy suites

This commit is contained in:
treyt
2026-02-19 17:30:58 -06:00
parent 09be5fa444
commit 710a8bd1d6
36 changed files with 835 additions and 6263 deletions

View File

@@ -0,0 +1,24 @@
# 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<CaseID>_<BehaviorDescription>()`.
- 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.