App-side changes: - Added "Get Started" / "Continue" next buttons to all onboarding pages (Welcome, Day, Time, Style) with onboarding_next_button accessibility ID - Added onNext callback plumbing from OnboardingMain to each page - OnboardingMain now uses TabView(selection:) for programmatic page navigation - Added .accessibilityElement(children: .contain) to all onboarding pages to fix iOS 26 paged TabView not exposing child elements - Added settings_segmented_picker accessibility ID to Settings Picker - Reduced padding on onboarding pages to keep buttons in visible area Test-side changes: - OnboardingScreen: replaced unreliable swipeToNext() with tapNext() that taps the accessibility-identified next button - OnboardingScreen: multi-strategy skip button detection for subscription page - SettingsScreen: scoped segment tap to picker element to avoid tab bar collision - CustomizeScreen: simplified horizontal scroll to plain app.swipeLeft() - OnboardingVotingTests: uses tapNext() to advance to Day page Passing: OnboardingTests.CompleteFlow, OnboardingVotingTests Remaining: OnboardingTests.DoesNotRepeat (session state issue), Settings scroll (deep elements), Customize horizontal pickers Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Tests iOS README
Purpose
Tests iOS/ contains XCTest-based UI tests for the iOS app.
Start Here Before Adding Tests
- Read
/Users/treyt/Desktop/code/Feels/docs/XCUITest-Authoring.md. - Reuse
BaseUITestCaseand helpers inHelpers/. - Reuse screen objects in
Screens/before writing inline query logic.
Required Pattern
- Test class inherits
BaseUITestCase. - Selectors use
UITestID/ accessibility identifiers first. - Waiting/tapping uses helper methods (
tapWhenReady,waitForDisappearance, etc). - New app interactions get IDs in
/Users/treyt/Desktop/code/Feels/Shared/AccessibilityIdentifiers.swift.
Anti-Patterns
sleep(...)- Selector logic based only on localized labels
- Duplicating navigation logic instead of using
Screens/*
Useful Paths
/Users/treyt/Desktop/code/Feels/Tests iOS/Helpers/BaseUITestCase.swift/Users/treyt/Desktop/code/Feels/Tests iOS/Helpers/WaitHelpers.swift/Users/treyt/Desktop/code/Feels/docs/templates/XCUITestSuiteTemplate.swift