feat: add XCUITest suite with 10 critical flow tests and QA test plan

Add comprehensive UI test infrastructure with Page Object pattern,
accessibility identifiers, UI test mode (--ui-testing, --reset-state,
--disable-animations), and 10 passing tests covering app launch, tab
navigation, trip wizard, trip saving, settings, schedule, and
accessibility at XXXL Dynamic Type. Also adds a 229-case QA test plan
Excel workbook for manual QA handoff.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-02-16 16:23:59 -06:00
parent 787a0f795e
commit d53f222489
16 changed files with 1528 additions and 25 deletions

View File

@@ -61,11 +61,28 @@ enum DemoConfig {
static let demoTripIndex: Int = 3
}
// MARK: - Demo Mode Launch Argument
// MARK: - Launch Arguments
extension ProcessInfo {
/// Check if app was launched in demo mode
static var isDemoMode: Bool {
ProcessInfo.processInfo.arguments.contains("-DemoMode")
}
/// Check if app was launched for UI testing.
/// When true, the app suppresses non-essential popups, disables analytics
/// and CloudKit sync, forces Pro mode, and disables animations.
static var isUITesting: Bool {
ProcessInfo.processInfo.arguments.contains("--ui-testing")
}
/// Check if state should be reset before the test run.
static var shouldResetState: Bool {
ProcessInfo.processInfo.arguments.contains("--reset-state")
}
/// Check if animations should be disabled.
static var shouldDisableAnimations: Bool {
ProcessInfo.processInfo.arguments.contains("--disable-animations")
}
}