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:
38
SportsTimeUITests/Tests/AppLaunchTests.swift
Normal file
38
SportsTimeUITests/Tests/AppLaunchTests.swift
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// AppLaunchTests.swift
|
||||
// SportsTimeUITests
|
||||
//
|
||||
// Verifies app boot, bootstrap, and initial screen rendering.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
final class AppLaunchTests: BaseUITestCase {
|
||||
|
||||
/// Verifies the app boots, shows the home screen, and all 5 tabs are present.
|
||||
@MainActor
|
||||
func testAppLaunchShowsHomeWithAllTabs() {
|
||||
let home = HomeScreen(app: app)
|
||||
home.waitForLoad()
|
||||
|
||||
// Assert: Hero card text visible
|
||||
XCTAssertTrue(home.adventureAwaitsText.exists,
|
||||
"Hero card should display 'Adventure Awaits'")
|
||||
|
||||
// Assert: All tabs present
|
||||
home.assertTabBarVisible()
|
||||
|
||||
captureScreenshot(named: "HomeScreen-Launch")
|
||||
}
|
||||
|
||||
/// Verifies the bootstrap loading indicator disappears and content renders.
|
||||
@MainActor
|
||||
func testBootstrapCompletesWithContent() {
|
||||
let home = HomeScreen(app: app)
|
||||
home.waitForLoad()
|
||||
|
||||
// Assert: Start Planning button is interactable (proves bootstrap loaded data)
|
||||
XCTAssertTrue(home.startPlanningButton.isHittable,
|
||||
"Start Planning should be hittable after bootstrap")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user