fix: make schedule generation tests reliable (#33)
Root cause: The tests used a navigate-away-and-back pattern to verify schedule persistence, which created a race condition with the PrismaPg adapter connection pool. The POST handler's transaction committed on one connection, but the subsequent GET from page.goto() could use a different pool connection that hadn't seen the commit yet. Fix: Remove the navigate-away-and-back pattern entirely. After clicking 'Generate Schedule', the component calls router.refresh() which triggers a server-side re-fetch and re-render in-place. The test now waits for the round headers to appear on the same page with a 30s timeout. All 39 scenarios pass reliably.
This commit is contained in:
@@ -564,11 +564,11 @@ Given('a tournament exists with {int} teams', async function (teamCount: number)
|
||||
When('I go to the tournament schedule page', async function () {
|
||||
console.log('🌍 Going to tournament schedule page');
|
||||
const tournamentId = world.tournament?.id || 1;
|
||||
// Add cache-busting timestamp to force fresh data
|
||||
const url = `${world.baseURL}/admin/tournaments/${tournamentId}/schedule?t=${Date.now()}`;
|
||||
await world.page.goto(url);
|
||||
await world.page.waitForLoadState('networkidle');
|
||||
await world.page.waitForTimeout(1000);
|
||||
// Wait for ScheduleDisplay client component to hydrate
|
||||
await world.page.waitForTimeout(2000);
|
||||
});
|
||||
|
||||
Given('a tournament has a generated schedule', async function () {
|
||||
|
||||
Reference in New Issue
Block a user