Add F-058, F-059, F-090 UI tests for trip options and schedule search
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
// SportsTimeUITests
|
// SportsTimeUITests
|
||||||
//
|
//
|
||||||
// Verifies the Schedule tab loads and displays content.
|
// Verifies the Schedule tab loads and displays content.
|
||||||
// QA Sheet: F-085, F-086, F-087, F-088, F-089, F-092
|
// QA Sheet: F-085, F-086, F-087, F-088, F-089, F-090, F-092
|
||||||
//
|
//
|
||||||
|
|
||||||
import XCTest
|
import XCTest
|
||||||
@@ -134,6 +134,29 @@ final class ScheduleTests: BaseUITestCase {
|
|||||||
captureScreenshot(named: "F089-SearchByTeam")
|
captureScreenshot(named: "F089-SearchByTeam")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// F-090: Search by venue name filters schedule results.
|
||||||
|
@MainActor
|
||||||
|
func testF090_SearchByVenueName() {
|
||||||
|
let home = HomeScreen(app: app)
|
||||||
|
home.waitForLoad()
|
||||||
|
home.switchToTab(home.scheduleTab)
|
||||||
|
|
||||||
|
let schedule = ScheduleScreen(app: app)
|
||||||
|
schedule.assertLoaded()
|
||||||
|
|
||||||
|
// Tap search field and type venue name
|
||||||
|
let searchField = schedule.searchField
|
||||||
|
XCTAssertTrue(searchField.waitForExistence(timeout: BaseUITestCase.defaultTimeout),
|
||||||
|
"Search field should exist")
|
||||||
|
searchField.tap()
|
||||||
|
searchField.typeText("Wrigley")
|
||||||
|
|
||||||
|
// Wait for results to filter
|
||||||
|
sleep(1)
|
||||||
|
|
||||||
|
captureScreenshot(named: "F090-SearchByVenue")
|
||||||
|
}
|
||||||
|
|
||||||
/// F-092: Empty state appears when filters match no games.
|
/// F-092: Empty state appears when filters match no games.
|
||||||
@MainActor
|
@MainActor
|
||||||
func testF092_ScheduleEmptyState() {
|
func testF092_ScheduleEmptyState() {
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
// TripOptionsTests.swift
|
// TripOptionsTests.swift
|
||||||
// SportsTimeUITests
|
// SportsTimeUITests
|
||||||
//
|
//
|
||||||
// Tests the Trip Options results screen: sorting, selection.
|
// Tests the Trip Options results screen: sorting, selection, navigation.
|
||||||
// QA Sheet: F-052, F-053, F-054, F-055
|
// QA Sheet: F-052, F-053, F-054, F-055, F-058, F-059
|
||||||
//
|
//
|
||||||
|
|
||||||
import XCTest
|
import XCTest
|
||||||
@@ -71,4 +71,41 @@ final class TripOptionsTests: BaseUITestCase {
|
|||||||
|
|
||||||
captureScreenshot(named: "F055-SortByBestEfficiency")
|
captureScreenshot(named: "F055-SortByBestEfficiency")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Select Trip (F-058)
|
||||||
|
|
||||||
|
/// F-058: Tapping a trip option card opens TripDetailView with full itinerary.
|
||||||
|
@MainActor
|
||||||
|
func testF058_SelectTripOpensDetail() {
|
||||||
|
let options = planTripAndGetOptions()
|
||||||
|
|
||||||
|
// Tap first trip card
|
||||||
|
options.selectTrip(at: 0)
|
||||||
|
|
||||||
|
// Trip detail should open with itinerary
|
||||||
|
let detail = TripDetailScreen(app: app)
|
||||||
|
detail.waitForLoad()
|
||||||
|
detail.assertItineraryVisible()
|
||||||
|
|
||||||
|
captureScreenshot(named: "F058-SelectTripOpensDetail")
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Back Navigation (F-059)
|
||||||
|
|
||||||
|
/// F-059: Back button on Trip Options returns to wizard with selections preserved.
|
||||||
|
@MainActor
|
||||||
|
func testF059_BackToWizardFromOptions() {
|
||||||
|
_ = planTripAndGetOptions()
|
||||||
|
|
||||||
|
// Tap back button to return to wizard
|
||||||
|
app.navigationBars.buttons.firstMatch.tap()
|
||||||
|
|
||||||
|
// Wizard should reappear with its navigation title or planning mode buttons
|
||||||
|
let wizard = TripWizardScreen(app: app)
|
||||||
|
let wizardVisible = wizard.navigationTitle.waitForExistence(timeout: BaseUITestCase.defaultTimeout)
|
||||||
|
|| wizard.planningModeButton("dateRange").waitForExistence(timeout: BaseUITestCase.defaultTimeout)
|
||||||
|
XCTAssertTrue(wizardVisible, "Wizard should be visible after tapping back from options")
|
||||||
|
|
||||||
|
captureScreenshot(named: "F059-BackToWizard")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user