Share acknowledged fixture gates with PlaybackPreparation UI tests #21
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/absplus!21
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/83-playbackprep-acked-taps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes agentboard #83 (https://agentboard.icefish-betta.ts.net/#83).
Stacked on #20 (fix/82-loading-release-gate), which introduces the 15s
gateTimeoutthis PR shares. Merge #20 first; this branch will then be rebased onto main so only its own two commits remain.What
ios/UITests/FixtureGates.swift: the acknowledgedrelease/hold/tabhelpers andgateTimeoutmove out ofLoadingLifecycleinto an opt-inFixtureGatesprotocol extension (where Self: XCTestCase). The bodies are unchanged, except that failures are now reported at the calling line.LoadingLifecycleconforms and drops its private copies.PlaybackPreparationconforms and uses them for every Release/Hold fixture request (launch,releaseAndAssertNoPlayback, :82/:90/:101/:196/:201) and every tab-bar tap (library, :85/:88/:95/:128/:133). Launch now waits for the fixture overlay before releasing.Check …taps becomecheck(...), which presses deliberately (0.1s) and waits for an exactlabel ==predicate.Unchanged assertions
Each expected readout differs from the fixture's initial value (positions 0, favorites -1, metadata
unchecked) and from the previous check, so the waits can't pass on stale text. The one exception is the second favorites loop, where the readout is already0; that case was already weak before this PR and isn't made worse. The other remaining plain taps (Release/Hold positions, tiles, Play, Back) are outside this ticket's scope: none of them is a fixture-request gate or a tab bar.Tests
Run locally with
xcodebuild … -only-testing:UITests/LoadingLifecycle -only-testing:UITests/PlaybackPreparation teston a dedicated iPhone 17 (iOS 27) simulator:testHomeShelfScrollsToFifth…. That run was killed by SIGTERM while waiting for a context menu, at the same time the host'sdtdeviceinfodcrashed; the test's only change here is the launch release, which had already passed. Rerunning that test on its own on the final head passed 2/2 (26.8s, 25.9s).