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:
@@ -52,6 +52,7 @@ struct HomeView: View {
|
||||
Label("Home", systemImage: "house.fill")
|
||||
}
|
||||
.tag(0)
|
||||
.accessibilityIdentifier("tab.home")
|
||||
|
||||
// Schedule Tab
|
||||
NavigationStack {
|
||||
@@ -61,6 +62,7 @@ struct HomeView: View {
|
||||
Label("Schedule", systemImage: "calendar")
|
||||
}
|
||||
.tag(1)
|
||||
.accessibilityIdentifier("tab.schedule")
|
||||
|
||||
// My Trips Tab
|
||||
NavigationStack {
|
||||
@@ -70,6 +72,7 @@ struct HomeView: View {
|
||||
Label("My Trips", systemImage: "suitcase.fill")
|
||||
}
|
||||
.tag(2)
|
||||
.accessibilityIdentifier("tab.myTrips")
|
||||
|
||||
// Progress Tab
|
||||
NavigationStack {
|
||||
@@ -85,6 +88,7 @@ struct HomeView: View {
|
||||
Label("Progress", systemImage: "chart.bar.fill")
|
||||
}
|
||||
.tag(3)
|
||||
.accessibilityIdentifier("tab.progress")
|
||||
|
||||
// Settings Tab
|
||||
NavigationStack {
|
||||
@@ -94,6 +98,7 @@ struct HomeView: View {
|
||||
Label("Settings", systemImage: "gear")
|
||||
}
|
||||
.tag(4)
|
||||
.accessibilityIdentifier("tab.settings")
|
||||
}
|
||||
.tint(Theme.warmOrange)
|
||||
.onChange(of: selectedTab) { oldTab, newTab in
|
||||
@@ -633,6 +638,7 @@ struct SavedTripsListView: View {
|
||||
.padding(Theme.Spacing.xl)
|
||||
.background(Theme.cardBackground(colorScheme))
|
||||
.clipShape(RoundedRectangle(cornerRadius: Theme.CornerRadius.large))
|
||||
.accessibilityIdentifier("myTrips.emptyState")
|
||||
} else {
|
||||
ForEach(Array(sortedTrips.enumerated()), id: \.element.id) { index, savedTrip in
|
||||
if let trip = savedTrip.trip {
|
||||
|
||||
@@ -82,6 +82,7 @@ struct HomeContent_ClassicAnimated: View {
|
||||
}
|
||||
.pressableStyle()
|
||||
.glowEffect(color: Theme.warmOrange, radius: 12)
|
||||
.accessibilityIdentifier("home.startPlanningButton")
|
||||
}
|
||||
.padding(Theme.Spacing.lg)
|
||||
.background(Theme.cardBackground(colorScheme))
|
||||
|
||||
Reference in New Issue
Block a user