Files
honeyDueKMP/iosApp/XCUITest-Authoring.md
Trey t 1e2adf7660 Rebrand from Casera/MyCrib to honeyDue
Total rebrand across KMM project:
- Kotlin package: com.example.casera -> com.tt.honeyDue (dirs + declarations)
- Gradle: rootProject.name, namespace, applicationId
- Android: manifest, strings.xml (all languages), widget resources
- iOS: pbxproj bundle IDs, Info.plist, entitlements, xcconfig
- iOS directories: Casera/ -> HoneyDue/, CaseraTests/ -> HoneyDueTests/, etc.
- Swift source: all class/struct/enum renames
- Deep links: casera:// -> honeydue://, .casera -> .honeydue
- App icons replaced with honeyDue honeycomb icon
- Domains: casera.treytartt.com -> honeyDue.treytartt.com
- Bundle IDs: com.tt.casera -> com.tt.honeyDue
- Database table names preserved

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 06:33:57 -06:00

1011 B

XCUITest Authoring

Required Architecture

  • Put shared test infrastructure in /Users/treyt/Desktop/code/HoneyDueKMM/iosApp/HoneyDueUITests/Framework.
  • Put feature suites in /Users/treyt/Desktop/code/HoneyDueKMM/iosApp/HoneyDueUITests/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/HoneyDueKMM/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.