From 145f60aa1175af29fb72f1f03fdd8dcebf5c4d44 Mon Sep 17 00:00:00 2001 From: Andreas Reinhold / reini Date: Thu, 17 Sep 2026 21:42:54 +0200 Subject: [PATCH] Measure the time picker's dial after its dialog has finished opening The test that holds the dial to its pixel size at a 20px root font size read the dial's width straight after the click, so on a loaded machine it caught the dialog mid-entry: scale 0.95 of 256px rounds to 243, a number the stylesheet never sets. The assertion then compared the settled dial against that, and failed for the whole retry window. It now waits for the dialog's own animations to finish before taking the resting width, the way the sheet tests already wait. Co-Authored-By: Claude Opus 5 (1M context) --- tests/Browser/TimepickerTest.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/Browser/TimepickerTest.php b/tests/Browser/TimepickerTest.php index a84ef52c..02c75a74 100644 --- a/tests/Browser/TimepickerTest.php +++ b/tests/Browser/TimepickerTest.php @@ -408,6 +408,10 @@ it('keeps the dial and the boxes their fixed pixel size at a 20px root font size $page = timeProbe()->click('#meeting'); + // After the dialog's entry, not during it: mid-scale the dial measures 0.95 of its own size, + // which would make the resting width this test compares against a number the CSS never sets. + $page->assertScript("document.querySelector('#meeting-dialog').getAnimations({ subtree: true }).length === 0"); + $restingWidth = (int) $page->script($dialWidth); $restingFont = $page->script($font);