diff --git a/apps/web/src/components/chat/MessagesTimeline.browser.test.tsx b/apps/web/src/components/chat/MessagesTimeline.browser.test.tsx index 6b1df4ca16927..2769bee83699e 100644 --- a/apps/web/src/components/chat/MessagesTimeline.browser.test.tsx +++ b/apps/web/src/components/chat/MessagesTimeline.browser.test.tsx @@ -238,15 +238,15 @@ describe("MessagesTimeline work rows", () => { const heading = screen.getByRole("button", { name: /^Worked for/ }); await expect.element(heading).toBeVisible(); const viewport = props.listRef.current!.getScrollableNode()!; - await vi.waitFor(() => - expect(viewport.scrollHeight - viewport.clientHeight - viewport.scrollTop).toBeLessThan(2), - ); + await vi.waitFor(() => { + // LegendList hides its initial layout with opacity, which toBeVisible does not check. + expect(heading.element().checkVisibility({ checkOpacity: true })).toBe(true); + expect(viewport.scrollHeight - viewport.clientHeight - viewport.scrollTop).toBeLessThan(2); + }); expect(viewport.scrollTop).toBeGreaterThan(0); const top = heading.element().getBoundingClientRect().top; const height = viewport.scrollHeight; - using _timers = fakeTimers(); await heading.click(); - await act(() => vi.advanceTimersByTime(1000)); await vi.waitFor(() => { expect(viewport.scrollHeight).toBeGreaterThan(height + 500); expect(heading.element().getBoundingClientRect().top).toBeCloseTo(top, 0);