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>
39 lines
1.1 KiB
Swift
39 lines
1.1 KiB
Swift
//
|
|
// 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")
|
|
}
|
|
}
|