Add 22 new UI tests across 8 test files covering Home, Schedule, Progress, Settings, TabNavigation, TripSaving, and TripOptions. Add accessibility identifiers to 11 view files for test element discovery. Fix sport chip assertion logic (all sports start selected, tap deselects), scroll container issues on iOS 26 nested ScrollViews, toggle interaction, and delete trip flow. Update QA coverage map from 32 to 54 automated test cases. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
48 lines
1.5 KiB
Swift
48 lines
1.5 KiB
Swift
//
|
|
// AccessibilityTests.swift
|
|
// SportsTimeUITests
|
|
//
|
|
// Smoke test for Dynamic Type accessibility at XXXL text size.
|
|
// QA Sheet: A-005
|
|
//
|
|
|
|
import XCTest
|
|
|
|
final class AccessibilityTests: BaseUITestCase {
|
|
|
|
/// A-005: Wizard at large text — all steps reachable, buttons tappable.
|
|
@MainActor
|
|
func testA005_LargeDynamicTypeEntryFlow() {
|
|
// Re-launch with large Dynamic Type
|
|
app.terminate()
|
|
app.launchArguments = [
|
|
"--ui-testing",
|
|
"--disable-animations",
|
|
"--reset-state",
|
|
"-UIPreferredContentSizeCategoryName",
|
|
"UICTContentSizeCategoryAccessibilityXXXL"
|
|
]
|
|
app.launch()
|
|
|
|
let home = HomeScreen(app: app)
|
|
home.waitForLoad()
|
|
|
|
// At XXXL text the button may be pushed below the fold; scroll into view
|
|
home.startPlanningButton.scrollIntoView(in: app.scrollViews.firstMatch)
|
|
XCTAssertTrue(home.startPlanningButton.isHittable,
|
|
"Start Planning should remain hittable at large Dynamic Type")
|
|
|
|
// Open wizard and verify planning mode options are reachable
|
|
home.tapStartPlanning()
|
|
let wizard = TripWizardScreen(app: app)
|
|
wizard.waitForLoad()
|
|
|
|
let dateRangeMode = wizard.planningModeButton("dateRange")
|
|
dateRangeMode.scrollIntoView(in: app.scrollViews.firstMatch)
|
|
XCTAssertTrue(dateRangeMode.isHittable,
|
|
"Planning mode should be hittable at large Dynamic Type")
|
|
|
|
captureScreenshot(named: "A005-Accessibility-LargeType")
|
|
}
|
|
}
|