test(e2e): poll for initial shrink-to-fit zoom before asserting (#607)

The initial fit-to-width in the pdf viewer measures container.clientWidth
immediately after showViewer() flips display:flex. Under CI load the reflow
can lag a tick, leaving widthFit >= 1.0 and zoom at 100% when first read,
which intermittently fails the toBeLessThan(100) assertion (~6 failures in
the 30 runs since #583).

Swap the single-shot read for expect.poll, matching the pattern already used
for the post-fullscreen assertion below, then capture inlineZoom for the
subsequent comparison.
This commit is contained in:
Olivier Chafik 2026-04-09 13:51:40 +01:00 • committed by GitHub
commit 4f4dd8b6f0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -63,8 +63,13 @@ test.describe("PDF Viewer — fullscreen fit + pinch zoom", () => {
await waitForPdfRender(page);
const app = getAppFrame(page);
// Initial fit-to-width measures container.clientWidth immediately after
// showViewer() flips display:flex; under CI load the reflow can lag, so
// poll until the shrink-to-fit scale has actually applied.
await expect
.poll(() => readZoomPercent(page), { timeout: 5000 })
.toBeLessThan(100);
const inlineZoom = await readZoomPercent(page);
expect(inlineZoom).toBeLessThan(100);
// Widen + give plenty of height, then enter fullscreen. Fullscreen uses
// fit-to-PAGE (whole page visible), so the resulting zoom is whichever