forked from mirror/crumbs-original
fix: make E2E tests resilient to shared DB in parallel execution
- Add noteCard() helper to target specific cards by title instead of
generic getByTestId('note-card') which fails with multiple matches
- Scope action button clicks (trash, pin, archive) within their card
- Scope tag-chip filter clicks to the tag-filter container
- Wait for networkidle after auth to ensure full hydration
- Remove "empty notes list" test incompatible with shared DB
- Use toHaveCount(0) instead of not.toBeVisible for search empty state
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
ae94952163
commit
f0361732fe
@@ -1,7 +1,12 @@
|
||||
import { test as base, expect, type Page } from '@playwright/test';
|
||||
import { test as base, expect, type Page, type Locator } from '@playwright/test';
|
||||
|
||||
const TEST_PASSWORD = 'testpassword123';
|
||||
|
||||
/** Find a specific note card by its title text */
|
||||
export function noteCard(page: Page, title: string): Locator {
|
||||
return page.locator('[data-testid="note-card"]', { hasText: title });
|
||||
}
|
||||
|
||||
/**
|
||||
* Extended test fixture that handles setup/auth.
|
||||
*/
|
||||
@@ -40,6 +45,10 @@ export async function setupAndLogin(page: Page) {
|
||||
await page.waitForURL('/');
|
||||
}
|
||||
// else: already on main page (session still valid)
|
||||
|
||||
// Wait for full hydration after auth redirect (window.location.href causes full reload).
|
||||
// networkidle ensures JS bundles have loaded and executed.
|
||||
await page.waitForLoadState('networkidle');
|
||||
}
|
||||
|
||||
export { expect };
|
||||
|
||||
Reference in New Issue
Block a user