Say what stood in the way when a click never lands
tests / feature (8.4) (push) Successful in 1m51s
tests / feature (8.5) (push) Successful in 1m53s
tests / browser (chrome, chromium) (push) Successful in 9m11s
tests / browser (firefox, firefox) (push) Failing after 19m44s
tests / browser (safari, webkit) (push) Failing after 17m36s

The two full-screen range picker tests give up after the full timeout on
the runner's Firefox, and nowhere else. Playwright waits for a click
target to be visible, still, enabled and on top, and reports none of
those when it gives up — so the failure says only that 45 seconds
passed.

Both tests now name the element the browser would hit at the toggle's own
centre before they press it (`hitTarget()`), so a covered or undrawn
control fails with what covered it rather than with a timeout. The run
also keeps the screenshots Playwright writes for a failure, as an
artifact: a page that only misbehaves there is otherwise invisible from a
workstation where all three engines pass.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
surtic86
2026-09-18 06:14:31 +02:00
co-authored by Claude Opus 5
parent 1b38b39a47
commit 8da8b1fa20
2 changed files with 51 additions and 5 deletions
+12
View File
@@ -102,3 +102,15 @@ jobs:
run: vendor/bin/pest --testsuite=Browser --browser ${{ matrix.browser }}
env:
BROWSER_TIMEOUT: 45000
# What the runner saw when an assertion or an action gave up. A failure that does not
# reproduce on a workstation is otherwise only a stack trace: the page itself says whether an
# element was covered, unstyled or never drawn.
- name: Keep the screenshots of what failed
if: failure()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: screenshots-${{ matrix.browser }}
path: tests/Browser/Screenshots
if-no-files-found: ignore
retention-days: 7