From df9467cace740cb4ba5602a31f17ac470eb25968 Mon Sep 17 00:00:00 2001 From: "pulse-triage[bot]" <249995291+pulse-triage[bot]@users.noreply.github.com> Date: Wed, 23 Sep 2026 11:23:57 +0100 Subject: [PATCH] test(frontend): bound Profile M windowing waits like their siblings The two Profile M row-windowing cases still waited at vitest/testing-library's 1000ms default with no per-test timeout, so under the release qualification VM's load they could abort the same way Profile L did for v6.4.5-rc.3 (packet 20260923T082318Z-release). Give both the declared 15s waitFor budget on the row-cap assertions and a 30s per-test timeout, matching the adjacent Profile L and grouped/flat contracts. Assertions are unchanged. Change-source: pulse-maintainer --- ...esourceTable.performance.contract.test.tsx | 39 ++++++++++++------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/frontend-modern/src/components/Infrastructure/__tests__/UnifiedResourceTable.performance.contract.test.tsx b/frontend-modern/src/components/Infrastructure/__tests__/UnifiedResourceTable.performance.contract.test.tsx index d6f8eb6ced..f67ba03150 100644 --- a/frontend-modern/src/components/Infrastructure/__tests__/UnifiedResourceTable.performance.contract.test.tsx +++ b/frontend-modern/src/components/Infrastructure/__tests__/UnifiedResourceTable.performance.contract.test.tsx @@ -1161,16 +1161,22 @@ describe('UnifiedResourceTable performance contract', () => { await waitFor(() => { expect(container.querySelector('table')).toBeInTheDocument(); }); - await waitFor(() => { - const rowCount = getBodyRowCount(container); - expect(rowCount).toBeGreaterThan(0); - expect(rowCount).toBeLessThanOrEqual(140); - }); - await waitFor(() => { - expect(getAllByText('Local Only').length).toBeGreaterThan(0); - }); + await waitFor( + () => { + const rowCount = getBodyRowCount(container); + expect(rowCount).toBeGreaterThan(0); + expect(rowCount).toBeLessThanOrEqual(140); + }, + { timeout: 15000 }, + ); + await waitFor( + () => { + expect(getAllByText('Local Only').length).toBeGreaterThan(0); + }, + { timeout: 15000 }, + ); expect(getPreferredInfrastructureDisplayName(resources[0]!)).toBe('Sensitive Host'); - }); + }, 30000); it('Profile M: caps mounted rows when windowing is active', async () => { const resources = makeResources(PROFILES.M); @@ -1186,12 +1192,15 @@ describe('UnifiedResourceTable performance contract', () => { await waitFor(() => { expect(container.querySelector('table')).toBeInTheDocument(); }); - await waitFor(() => { - const rowCount = getBodyRowCount(container); - expect(rowCount).toBeGreaterThan(0); - expect(rowCount).toBeLessThanOrEqual(140); - }); - }); + await waitFor( + () => { + const rowCount = getBodyRowCount(container); + expect(rowCount).toBeGreaterThan(0); + expect(rowCount).toBeLessThanOrEqual(140); + }, + { timeout: 15000 }, + ); + }, 30000); it('Profile L: keeps mounted rows capped under large load', async () => { const resources = makeResources(PROFILES.L);