From 4e6d8ff37fc54d3166db27219ee59eeb49318a1d Mon Sep 17 00:00:00 2001 From: Trey t Date: Fri, 20 Feb 2026 01:16:25 -0600 Subject: [PATCH] Add F-037, F-038, F-091 UI tests; mark F-016 red (no accessibility ID) - F-037: Route preference cards (Direct/Scenic/Balanced) selectable - F-038: Allow repeat cities toggle buttons work - F-091: Date range filter sheet opens and applies correctly - F-016: Marked RED - featured trip card buttons lack accessibility IDs Co-Authored-By: Claude Opus 4.6 --- SportsTimeUITests/Tests/ScheduleTests.swift | 44 +++++++++++- .../Tests/TripWizardFlowTests.swift | 64 +++++++++++++++++- docs/SportsTime_QA_Test_Plan.xlsx | Bin 35260 -> 35320 bytes 3 files changed, 106 insertions(+), 2 deletions(-) diff --git a/SportsTimeUITests/Tests/ScheduleTests.swift b/SportsTimeUITests/Tests/ScheduleTests.swift index 73f8c8c..bee02cc 100644 --- a/SportsTimeUITests/Tests/ScheduleTests.swift +++ b/SportsTimeUITests/Tests/ScheduleTests.swift @@ -3,7 +3,7 @@ // SportsTimeUITests // // Verifies the Schedule tab loads and displays content. -// QA Sheet: F-085, F-086, F-087, F-088, F-089, F-090, F-092, F-094 +// QA Sheet: F-085, F-086, F-087, F-088, F-089, F-090, F-091, F-092, F-094 // import XCTest @@ -191,6 +191,48 @@ final class ScheduleTests: BaseUITestCase { captureScreenshot(named: "F092-ScheduleEmptyState") } + // MARK: - Date Range Filter (F-091) + + /// F-091: Date range filter sheet opens and applies. + @MainActor + func testF091_DateRangeFilter() { + let home = HomeScreen(app: app) + home.waitForLoad() + home.switchToTab(home.scheduleTab) + + let schedule = ScheduleScreen(app: app) + schedule.assertLoaded() + + // Open filter menu + schedule.filterButton.tap() + + // Tap "Date Range" in the menu + let dateRangeButton = app.buttons["Date Range"] + XCTAssertTrue(dateRangeButton.waitForExistence(timeout: BaseUITestCase.shortTimeout), + "Date Range menu item should exist") + dateRangeButton.tap() + + // Date range picker sheet should appear + let sheetTitle = app.staticTexts["Select Dates"] + XCTAssertTrue(sheetTitle.waitForExistence(timeout: BaseUITestCase.defaultTimeout), + "Date range picker sheet should appear") + + // Tap "Next 7 Days" quick option + let next7Days = app.buttons["Next 7 Days"] + XCTAssertTrue(next7Days.exists, "Next 7 Days button should exist") + next7Days.tap() + + // Apply the filter + let applyButton = app.buttons["Apply"] + XCTAssertTrue(applyButton.exists, "Apply button should exist") + applyButton.tap() + + // Schedule should still function after applying date filter + schedule.assertLoaded() + + captureScreenshot(named: "F091-DateRangeFilter") + } + // MARK: - Diagnostics (F-094) /// F-094: Diagnostics button opens the diagnostics sheet. diff --git a/SportsTimeUITests/Tests/TripWizardFlowTests.swift b/SportsTimeUITests/Tests/TripWizardFlowTests.swift index 554684d..76be00d 100644 --- a/SportsTimeUITests/Tests/TripWizardFlowTests.swift +++ b/SportsTimeUITests/Tests/TripWizardFlowTests.swift @@ -4,7 +4,7 @@ // // Tests the trip planning wizard: planning modes, calendar navigation, // sport/region selection, and planning engine results. -// QA Sheet: F-018 through F-042, F-047; also F-030, F-031, F-032 +// QA Sheet: F-018 through F-042, F-047; also F-030, F-031, F-032, F-037, F-038 // import XCTest @@ -477,6 +477,68 @@ final class TripWizardFlowTests: BaseUITestCase { captureScreenshot(named: "F047-WizardScroll") } + // MARK: - Route Preference (F-037) + + /// F-037: Route preference cards (Direct/Scenic/Balanced) are selectable. + @MainActor + func testF037_RoutePreferenceSelection() { + let (_, wizard) = openWizard() + wizard.selectDateRangeMode() + + // Scroll down to find route preference cards + let scenicButton = app.buttons["Scenic"] + scenicButton.scrollIntoView(in: app.scrollViews.firstMatch) + + guard scenicButton.exists else { + XCTFail("Scenic route preference button not found") + return + } + + // Tap "Scenic" to select it + scenicButton.tap() + + // Verify it became selected + XCTAssertEqual(scenicButton.value as? String, "Selected", + "Scenic route preference should be selected after tap") + + captureScreenshot(named: "F037-RoutePreference-Scenic") + } + + // MARK: - Allow Repeat Cities (F-038) + + /// F-038: Allow repeat cities toggle buttons work. + @MainActor + func testF038_AllowRepeatCitiesToggle() { + let (_, wizard) = openWizard() + wizard.selectDateRangeMode() + + // Scroll down to find repeat cities options + let uniqueButton = app.buttons["No, unique cities only"] + uniqueButton.scrollIntoView(in: app.scrollViews.firstMatch) + + guard uniqueButton.exists else { + XCTFail("'No, unique cities only' button not found") + return + } + + // Tap to select unique cities only + uniqueButton.tap() + + // Verify selection + XCTAssertEqual(uniqueButton.value as? String, "Selected", + "'No, unique cities only' should be selected after tap") + + // Tap "Yes, allow repeats" to switch + let repeatButton = app.buttons["Yes, allow repeats"] + if repeatButton.exists { + repeatButton.tap() + XCTAssertEqual(repeatButton.value as? String, "Selected", + "'Yes, allow repeats' should be selected after tap") + } + + captureScreenshot(named: "F038-RepeatCities") + } + // MARK: - All 5 Modes Available (F-018 to F-022 combined) /// Verifies all 5 planning mode buttons are present in the wizard. diff --git a/docs/SportsTime_QA_Test_Plan.xlsx b/docs/SportsTime_QA_Test_Plan.xlsx index 3ce005a92e53d8341f6ec90cb6296fa72c28090c..c4b229df0bdfc08baec4cc21ec0f35ec1188f967 100644 GIT binary patch delta 14428 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 z zyQ7WeXl)%X@pPR*`MI7=ujGT7?prJ#pBN2|={$NGtHB4uu-)tCqNm$EG+k}Y!@dqf z;Gucd=>1XKusF@o7ENA_MHf3NTT~Dx(+D)5E!IRZg$aq%WhKgaw{-7Itkzu0c0gQY zy_!ov3&}X*;?9oI_JI-cju3-Rp^#N41RUAu2r^a!)bGzax5DXJd(b?M%rGgwMtVA{oh0ZmCkW3Bq}G(tsf%!+ti>tNDU*_Kghi<>9zXB zw;Zv%M}egC#gD}9)MJom6Gn2PL^(L9hDOmolt2`wd(K$?tWME^UqVGu(8-y{$rg7i zu_Y*BZu!{i8qdEez1Vze7W8BL}k zQY`ESzsqMsJ8}J@9wu*HWlVR77i{T{7fB;*6Hc0)S8rQ^_pnng3cqhgM)K7bqA(M>Fayt=@)QtWsF08fC(X`vtv`e3t~{T z`N#5hww8U%#HoyZa1rEM%}=zEiw{xB=pSB^*<*#;yAs2$H#va4Vp4rlySKxp?$wVO zxt6uCEfjD!c7j7p%sLdZ%-}*%0qyUzq5`gj6QR9g{CN~;PsY61aRCu^GoPH$$i;ZO+yPB15ycW}@-|vm$$d{e`P6D~D^;_{7t1-MRg<5v> zZHA(3j7Q|{_CWAB=MhIF{Om1JMXfqUS-RVD%6|S^-~gSb$Sx9G$3IqT2afUwr^ETq zetgQFw-QHkzw5k=>YMfzjx=L?z|5qje`a@;;QQLmP|x$Rcx3tjj{RwsF4|TUeN~7$ zjQsXhx;14m`)?=?u6q@t<4?)A2zlr5jZ2)9&xdz7Kt0cYI~v;{?I`OR*jM}|_}l)B zJh?yD#1@C3x z75=|p(W-%xiNt_HM5>9=fkpY-{xbiC^tWYo!a(@jih9*SzqO!8pS{1`ZC^sDzg@_H z=eMRhPz&;JPbY}~zwWz%vV*w(jx7ZVq5aP*Um%)b?hpTlG<yC-cA%5DkwNpn&wOHMa<#IQ`wj_(4gH_j z?v%8k6entz;UOTR=>NB51CV?O^C?=E=E+Xjf=>G%F delta 14277 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