2.7 KiB
2.7 KiB
Instructions
- Following Playwright test failed.
- Explain why, be concise, respect Playwright best practices.
- Provide a snippet of code with the fix, if possible.
Test info
- Name: verify_stress.spec.js >> Stress test: Virtual List should handle 10,000 items with dynamic height
- Location: test/verify_stress.spec.js:3:1
Error details
Test timeout of 60000ms exceeded.
Error: page.waitForFunction: Test timeout of 60000ms exceeded.
Page snapshot
- generic [ref=e2]:
- heading "1. Standard List (Normal)" [level=5] [ref=e4]
- 'heading "2. Group List (Mode: Group)" [level=5] [ref=e7]'
- 'heading "3. Tree List (Mode: Tree + Collapsible)" [level=5] [ref=e10]'
- heading "4. FAST Virtual List (10,000 Items + Dynamic Height)" [level=5] [ref=e13]
Test source
1 | import { test, expect } from '@playwright/test';
2 |
3 | test('Stress test: Virtual List should handle 10,000 items with dynamic height', async ({ page }) => {
4 | test.setTimeout(60000);
5 | page.on('console', msg => console.log('BROWSER LOG:', msg.text()));
6 |
7 | await page.goto('http://localhost:8082/test/list_test.html');
8 |
9 | const listFast = page.locator('#listFast');
10 | await expect(listFast).toBeVisible();
> 11 | await page.waitForFunction(() => document.querySelectorAll('#listFast .list-group-item').length > 0);
| ^ Error: page.waitForFunction: Test timeout of 60000ms exceeded.
12 |
13 | // Check initial state
14 | const scrollTop = await listFast.evaluate(e => e.scrollTop);
15 | const scrollHeight = await listFast.evaluate(e => e.scrollHeight);
16 | const clientHeight = await listFast.evaluate(e => e.clientHeight);
17 | console.log(`Initial: scrollTop=${scrollTop}, scrollHeight=${scrollHeight}, clientHeight=${clientHeight}`);
18 |
19 | // Attach event listener to see if scroll fires
20 | await listFast.evaluate(e => {
21 | e.addEventListener('scroll', () => console.log('SCROLL EVENT FIRED! new scrollTop:', e.scrollTop));
22 | });
23 |
24 | // Scroll to the very end
25 | await listFast.evaluate(e => e.scrollTop = e.scrollHeight);
26 | await page.waitForTimeout(1000);
27 |
28 | const finalScrollTop = await listFast.evaluate(e => e.scrollTop);
29 | console.log(`Final: scrollTop=${finalScrollTop}`);
30 |
31 | const lastItemText = await listFast.locator('.list-group-item').last().textContent();
32 | console.log('Last rendered item text:', lastItemText);
33 | expect(lastItemText).toContain('Virtual Item 10000');
34 | });
35 |