From 4cb8d89fbd01f2a3e5c048235e07588c46724d3e Mon Sep 17 00:00:00 2001 From: Trey t Date: Fri, 20 Feb 2026 00:52:07 -0600 Subject: [PATCH] Add F-084, F-133, F-134 UI tests; mark F-131, F-132 red (toggle unreliable) Co-Authored-By: Claude Opus 4.6 --- SportsTimeUITests/Tests/HomeTests.swift | 33 ++++++++++++- SportsTimeUITests/Tests/SettingsTests.swift | 52 +++++++++++++++++++- docs/SportsTime_QA_Test_Plan.xlsx | Bin 34332 -> 34434 bytes 3 files changed, 83 insertions(+), 2 deletions(-) diff --git a/SportsTimeUITests/Tests/HomeTests.swift b/SportsTimeUITests/Tests/HomeTests.swift index 3404bb0..c3f390e 100644 --- a/SportsTimeUITests/Tests/HomeTests.swift +++ b/SportsTimeUITests/Tests/HomeTests.swift @@ -3,7 +3,7 @@ // SportsTimeUITests // // Tests for the Home tab: hero card, start planning, toolbar button, recent trips, polls. -// QA Sheet: F-012, F-013, F-014, F-017, F-018, F-019, F-020, F-081, F-083 +// QA Sheet: F-012, F-013, F-014, F-017, F-018, F-019, F-020, F-081, F-083, F-084 // import XCTest @@ -204,4 +204,35 @@ final class HomeTests: BaseUITestCase { captureScreenshot(named: "F083-CreatePollHidden") } + + // MARK: - Pull to Refresh (F-084) + + /// F-084: Pull to refresh on My Trips tab doesn't crash. + @MainActor + func testF084_PullToRefresh() { + let home = HomeScreen(app: app) + home.waitForLoad() + home.switchToTab(home.myTripsTab) + + // Wait briefly for My Trips content to load + sleep(1) + + // Pull down to refresh + app.swipeDown(velocity: .slow) + + // Wait for any refresh to complete + sleep(2) + + // Verify the tab is still functional (no crash) + let groupPolls = app.staticTexts["Group Polls"] + var scrollAttempts = 0 + while !groupPolls.exists && scrollAttempts < 5 { + app.swipeUp(velocity: .slow) + scrollAttempts += 1 + } + XCTAssertTrue(groupPolls.exists, + "My Trips tab should remain functional after pull to refresh") + + captureScreenshot(named: "F084-PullToRefresh") + } } diff --git a/SportsTimeUITests/Tests/SettingsTests.swift b/SportsTimeUITests/Tests/SettingsTests.swift index 5328d3f..62b3647 100644 --- a/SportsTimeUITests/Tests/SettingsTests.swift +++ b/SportsTimeUITests/Tests/SettingsTests.swift @@ -3,7 +3,7 @@ // SportsTimeUITests // // Verifies the Settings screen loads, displays version, and shows all sections. -// QA Sheet: F-123, F-124, F-125, F-126, F-127, F-128, F-135, F-138, F-139 +// QA Sheet: F-123, F-124, F-125, F-126, F-127, F-128, F-133, F-134, F-135, F-138, F-139 // import XCTest @@ -173,6 +173,56 @@ final class SettingsTests: BaseUITestCase { captureScreenshot(named: "F128-AnimationsToggled") } + // MARK: - Manual Sync (F-133) + + /// F-133: Tap "Sync Now" button triggers sync. + @MainActor + func testF133_ManualSyncTrigger() { + let home = HomeScreen(app: app) + home.waitForLoad() + home.switchToTab(home.settingsTab) + + let settings = SettingsScreen(app: app) + settings.assertLoaded() + + let syncButton = settings.syncNowButton + syncButton.scrollIntoView(in: app.collectionViews.firstMatch) + XCTAssertTrue(syncButton.exists, "Sync Now button should exist") + syncButton.tap() + + // After tapping, no crash is the primary assertion. + // Sync may show a progress indicator or message briefly. + captureScreenshot(named: "F133-ManualSync") + } + + // MARK: - Sync Logs (F-134) + + /// F-134: View Sync Logs button opens the log viewer sheet. + @MainActor + func testF134_ViewSyncLogs() { + let home = HomeScreen(app: app) + home.waitForLoad() + home.switchToTab(home.settingsTab) + + let settings = SettingsScreen(app: app) + settings.assertLoaded() + + // Scroll to and tap "View Sync Logs" button + let syncLogsButton = app.buttons.matching(NSPredicate( + format: "label CONTAINS 'Sync Logs'" + )).firstMatch + syncLogsButton.scrollIntoView(in: app.collectionViews.firstMatch) + XCTAssertTrue(syncLogsButton.exists, "View Sync Logs button should exist") + syncLogsButton.tap() + + // Sheet should appear — look for navigation bar or content + let sheetContent = app.navigationBars.firstMatch + XCTAssertTrue(sheetContent.waitForExistence(timeout: BaseUITestCase.defaultTimeout), + "Sync logs sheet should appear") + + captureScreenshot(named: "F134-SyncLogs") + } + // MARK: - Reset to Defaults (F-138, F-139) /// F-138: Reset to Defaults triggers confirmation and resets settings. diff --git a/docs/SportsTime_QA_Test_Plan.xlsx b/docs/SportsTime_QA_Test_Plan.xlsx index 3a3c7f577fe3fcdb6da621d2a79631d004cc2cf2..86b85a701a7f7ae46387f2f21d29e02f352df549 100644 GIT binary patch delta 16373 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