fix(e2e): Fix 12 failing E2E tests - DataTable reactivity and selector issues
- Fix DataTable reactivity: use $derived with getters for data/columns props - Fix auth.spec.js: open user dropdown before clicking Logout button - Fix dashboard.spec.ts: scope selectors to layout-content, use exact matches - Fix layout.spec.ts: clear localStorage before breakpoint tests, wait for focus - Fix projects/team-members.spec.ts: wait for table rows to be visible Root causes: 1. DataTable options object captured initial empty array, not reactive updates 2. Selectors matched multiple elements (sidebar, user menu, main content) 3. Dropdown menus need to be opened before clicking items 4. Keyboard shortcuts need element focus All 94 tests now pass (47 chromium + 47 firefox)
This commit is contained in:
@@ -142,8 +142,8 @@ test.describe('Layout E2E', () => {
|
||||
|
||||
for (const [width, height, expected] of breakpoints) {
|
||||
await page.setViewportSize({ width, height });
|
||||
await page.goto('/login');
|
||||
await page.evaluate(() => localStorage.setItem('headroom_sidebar_state', 'expanded'));
|
||||
// Clear localStorage to test default breakpoint behavior
|
||||
await page.evaluate(() => localStorage.removeItem('headroom_sidebar_state'));
|
||||
await openDashboard(page);
|
||||
await expect
|
||||
.poll(async () => page.evaluate(() => document.documentElement.getAttribute('data-sidebar')))
|
||||
@@ -155,7 +155,14 @@ test.describe('Layout E2E', () => {
|
||||
await page.setViewportSize({ width: 1280, height: 900 });
|
||||
await openDashboard(page);
|
||||
|
||||
// Wait for sidebar to be fully mounted with event listeners
|
||||
await expect(page.locator('[data-testid="sidebar"]')).toBeVisible();
|
||||
await page.waitForTimeout(100);
|
||||
|
||||
const before = await page.evaluate(() => document.documentElement.getAttribute('data-sidebar'));
|
||||
|
||||
// Focus on the page body to ensure keyboard events are captured
|
||||
await page.locator('body').click();
|
||||
await page.keyboard.down('Control');
|
||||
await page.keyboard.press('\\');
|
||||
await page.keyboard.up('Control');
|
||||
|
||||
Reference in New Issue
Block a user