test(print): scroll stage-2 via synthesized scroll wheel (#215) #216

Merged
gronod merged 1 commits from feat/215-stage2-scroll-wheel into develop 2026-09-18 10:59:33 +01:00
Owner

Summary

Closes #215.

scrollStage2UntilHittable scrolled stage-2 with synthesized press(forDuration:thenDragTo:) finger-drags — inert on macOS (content-drag scrolling is iOS-only), so the loop burned its 20 s budget while the gallery frame never moved and btnPrintPage-0 could stay unhittable at the window's bottom edge.

Replaced both drag branches with the platform's scroll mechanism: scroll(byDeltaX:deltaY:) on a coordinate inside app.scrollViews["stage-2"] (deltaY: -60 — scroll toward the document bottom so content moves up, off the Dock zone). This restores the approach originally proposed in #132 (commit b525059), with a meaningful pixel magnitude instead of -1.

Changes

  • Tests/ICCeryUITests/Milestone3UITests.swift — scrollStage2UntilHittable: one wheel-scroll per poll iteration on stage-2; added a stage-2 existence wait; kept the poll-until-hittable loop, the windowBottom - 80 Dock-zone guard, the per-iteration button re-query, and the "never coordinate-click a stale frame" contract. Doc comment now states drags don't scroll a macOS ScrollView (dropping the inverted "scroll wheel is inert" claim).
  • testPerPagePrint unchanged.

Verification

Remote build host (macOS 12.7.6 x86_64, Xcode 14.2), mirrored .gitea/workflows/macos.yml (xcodegen → version.sh → build-for-testing → codesign frameworks → test-without-building):

  • Milestone3UITests/testPerPagePrint — passed (37.7 s); a single dy: -60 scroll made btnPrintPage-0 hittable and the spool line was recorded.
  • Full Milestone3UITests leg — 6 tests, 0 failures (209 s).
  • Side confirmation of the sign: XCUI's own auto scroll-to-visible used dy: -465.50 to reveal btnPrintAll in testSpoolFailureShowsPrintNotice.

Acceptance criteria

  • scrollStage2UntilHittable uses scroll(byDeltaX:deltaY:); no press(forDuration:thenDragTo:) remains
  • testPerPagePrint passes with btnPrintPage-0 becoming hittable via the scroll gesture
  • Full Milestone3UITests leg green
## Summary Closes #215. `scrollStage2UntilHittable` scrolled stage-2 with synthesized `press(forDuration:thenDragTo:)` finger-drags — inert on macOS (content-drag scrolling is iOS-only), so the loop burned its 20 s budget while the gallery frame never moved and `btnPrintPage-0` could stay unhittable at the window's bottom edge. Replaced both drag branches with the platform's scroll mechanism: `scroll(byDeltaX:deltaY:)` on a coordinate inside `app.scrollViews["stage-2"]` (`deltaY: -60` — scroll toward the document bottom so content moves up, off the Dock zone). This restores the approach originally proposed in #132 (commit `b525059`), with a meaningful pixel magnitude instead of `-1`. ## Changes - `Tests/ICCeryUITests/Milestone3UITests.swift` — `scrollStage2UntilHittable`: one wheel-scroll per poll iteration on `stage-2`; added a `stage-2` existence wait; kept the poll-until-hittable loop, the `windowBottom - 80` Dock-zone guard, the per-iteration button re-query, and the "never coordinate-click a stale frame" contract. Doc comment now states drags don't scroll a macOS ScrollView (dropping the inverted "scroll wheel is inert" claim). - `testPerPagePrint` unchanged. ## Verification Remote build host (macOS 12.7.6 x86_64, Xcode 14.2), mirrored `.gitea/workflows/macos.yml` (xcodegen → version.sh → build-for-testing → codesign frameworks → test-without-building): - `Milestone3UITests/testPerPagePrint` — **passed** (37.7 s); a single `dy: -60` scroll made `btnPrintPage-0` hittable and the spool line was recorded. - Full `Milestone3UITests` leg — **6 tests, 0 failures** (209 s). - Side confirmation of the sign: XCUI's own auto scroll-to-visible used `dy: -465.50` to reveal `btnPrintAll` in `testSpoolFailureShowsPrintNotice`. ## Acceptance criteria - [x] `scrollStage2UntilHittable` uses `scroll(byDeltaX:deltaY:)`; no `press(forDuration:thenDragTo:)` remains - [x] `testPerPagePrint` passes with `btnPrintPage-0` becoming hittable via the scroll gesture - [x] Full `Milestone3UITests` leg green
gronod added the Kind/Testing
Priority
Medium
3
Project/ICCery-v2Feature/UI
labels 2026-09-18 10:39:55 +01:00
gronod added 1 commit 2026-09-18 10:39:56 +01:00
test(print): scroll stage-2 via synthesized scroll wheel (#215)
macOS CI / package (pull_request) Canceled after 0s
macOS CI / build-and-test (push) Canceled after 0s
macOS CI / package (push) Canceled after 0s
macOS CI / build-and-test (pull_request) Canceled after 24m1s
ed91ebf807
press(forDuration:thenDragTo:) is inert on macOS — content-drag
scrolling is iOS-only, so the helper burned its 20s budget with the
gallery frame never moving. The scroll wheel is the mechanism the
platform supports: one scroll(byDeltaX:deltaY:) call on a coordinate
inside app.scrollViews["stage-2"] per poll iteration, negative deltaY
to move content up off the Dock zone.
gronod merged commit ed91ebf807 into develop 2026-09-18 10:59:33 +01:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gronod/iccery-v2-mac#216