From f77163ccf59a568b9b844dbad650bdaa755a1ace Mon Sep 17 00:00:00 2001 From: Vito Sansevero Date: Sat, 31 Oct 2026 09:21:46 -0700 Subject: [PATCH] test(tags): pin the 390px window check to the first page's last row Reaching the last row loads the next page (D183), and last() then followed row 200, far outside the window, so the WebKit check failed in 4-5 of 20 runs on 2 CPUs. Pinned to row 100, it passed 90 of 90 across WebKit, Chromium and Firefox. Closes #566 --- tests/browser/workspace-layout-tags-system.spec.mjs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/browser/workspace-layout-tags-system.spec.mjs b/tests/browser/workspace-layout-tags-system.spec.mjs index 64f8f9c1..a35cf8b3 100644 --- a/tests/browser/workspace-layout-tags-system.spec.mjs +++ b/tests/browser/workspace-layout-tags-system.spec.mjs @@ -156,8 +156,9 @@ test('at 390px the window fits the screen, actions stay reachable and the page s expect(frame.bottom-frame.top).toBeLessThan(844); expect(frame.bottom-frame.top).toBeGreaterThanOrEqual(280); expect(await page.evaluate(()=>document.documentElement.scrollWidth)).toBeLessThanOrEqual(390); - // The last row's actions can be scrolled to inside the window and fit its width. - const last=rows(page).last().getByRole('button',{name:'Rename / merge',exact:true}); + // The first page's last row's actions can be scrolled to inside the window and fit its width. + // Pinned to row 100: reaching it loads the next page (D183), and last() would then follow row 200. + const last=rows(page).nth(99).getByRole('button',{name:'Rename / merge',exact:true}); await last.scrollIntoViewIfNeeded();await expect(last).toBeInViewport(); const [button]=await boxes(last);const [after]=await boxes(tagWindow(page)); expect(button.right).toBeLessThanOrEqual(after.right);