diff --git a/e2e/tests/app-features/focus-mode-break.spec.ts b/e2e/tests/app-features/focus-mode-break.spec.ts index ebfa9cbe74..bfc22019eb 100644 --- a/e2e/tests/app-features/focus-mode-break.spec.ts +++ b/e2e/tests/app-features/focus-mode-break.spec.ts @@ -62,8 +62,11 @@ test.describe('Focus Mode - Break Controls (Issue #5995)', () => { await expect(completeSessionButton).toBeVisible({ timeout: 20000 }); await completeSessionButton.click(); - // In Pomodoro mode, break auto-starts after session completion - await expect(focusModeBreak).toBeVisible({ timeout: 10000 }); + // Wait for session-done transition to complete before checking for break + await expect(completeSessionButton).not.toBeVisible({ timeout: 10000 }); + + // In Pomodoro mode, break auto-starts after session completion via effects chain + await expect(focusModeBreak).toBeVisible({ timeout: 15000 }); // Verify mode selector is NOT visible on break screen await expect(modeSelector).not.toBeVisible(); @@ -124,8 +127,11 @@ test.describe('Focus Mode - Break Controls (Issue #5995)', () => { await expect(completeSessionButton).toBeVisible({ timeout: 20000 }); await completeSessionButton.click(); - // In Pomodoro mode, break auto-starts after session completion - await expect(focusModeBreak).toBeVisible({ timeout: 10000 }); + // Wait for session-done transition to complete before checking for break + await expect(completeSessionButton).not.toBeVisible({ timeout: 10000 }); + + // In Pomodoro mode, break auto-starts after session completion via effects chain + await expect(focusModeBreak).toBeVisible({ timeout: 15000 }); // Verify both buttons are visible await expect(backToPlanningButton).toBeVisible(); @@ -166,8 +172,11 @@ test.describe('Focus Mode - Break Controls (Issue #5995)', () => { await expect(completeSessionButton).toBeVisible({ timeout: 20000 }); await completeSessionButton.click(); - // In Pomodoro mode, break auto-starts after session completion - await expect(focusModeBreak).toBeVisible({ timeout: 10000 }); + // Wait for session-done transition to complete before checking for break + await expect(completeSessionButton).not.toBeVisible({ timeout: 10000 }); + + // In Pomodoro mode, break auto-starts after session completion via effects chain + await expect(focusModeBreak).toBeVisible({ timeout: 15000 }); // Skip the break await skipBreakButton.click(); @@ -213,8 +222,11 @@ test.describe('Focus Mode - Break Controls (Issue #5995)', () => { await expect(completeSessionButton).toBeVisible({ timeout: 20000 }); await completeSessionButton.click(); - // In Pomodoro mode, break auto-starts after session completion - await expect(focusModeBreak).toBeVisible({ timeout: 10000 }); + // Wait for session-done transition to complete before checking for break + await expect(completeSessionButton).not.toBeVisible({ timeout: 10000 }); + + // In Pomodoro mode, break auto-starts after session completion via effects chain + await expect(focusModeBreak).toBeVisible({ timeout: 15000 }); // Click Back to Planning await backToPlanningButton.click(); diff --git a/e2e/tests/break/take-a-break.spec.ts b/e2e/tests/break/take-a-break.spec.ts index 197200393c..ee7f723aa8 100644 --- a/e2e/tests/break/take-a-break.spec.ts +++ b/e2e/tests/break/take-a-break.spec.ts @@ -17,7 +17,6 @@ test.describe('Take-a-Break Feature', () => { // Navigate to settings page where break settings live await page.goto('/#/config'); - await page.waitForLoadState('networkidle'); // Verify we're on the settings page await expect(page).toHaveURL(/config/); @@ -29,7 +28,6 @@ test.describe('Take-a-Break Feature', () => { // Navigate to settings await page.goto('/#/config'); - await page.waitForLoadState('networkidle'); // Verify the settings page loaded with sections await expect(page.locator('.page-settings')).toBeVisible(); @@ -45,7 +43,6 @@ test.describe('Take-a-Break Feature', () => { // Navigate to settings await page.goto('/#/config'); - await page.waitForLoadState('networkidle'); // Verify settings page loaded await expect(page.locator('.page-settings').first()).toBeVisible(); @@ -63,16 +60,14 @@ test.describe('Take-a-Break Feature', () => { // Navigate to settings await page.goto('/#/config'); - await page.waitForLoadState('networkidle'); await expect(page.locator('.page-settings').first()).toBeVisible(); // Navigate away await page.goto('/#/tag/TODAY'); - await page.waitForLoadState('networkidle'); + await expect(page.locator('task-list').first()).toBeVisible(); // Navigate back to settings await page.goto('/#/config'); - await page.waitForLoadState('networkidle'); // Settings should still be accessible (use first() to avoid animation duplicates) await expect(page.locator('.page-settings').first()).toBeVisible(); @@ -83,7 +78,6 @@ test.describe('Take-a-Break Feature', () => { // Navigate to settings await page.goto('/#/config'); - await page.waitForLoadState('networkidle'); await expect(page.locator('.page-settings')).toBeVisible(); @@ -108,12 +102,10 @@ test.describe('Take-a-Break Feature', () => { // Navigate to settings await page.goto('/#/config'); - await page.waitForLoadState('networkidle'); await expect(page.locator('.page-settings')).toBeVisible(); // Navigate back to work view await page.goto('/#/tag/TODAY'); - await page.waitForLoadState('networkidle'); // Verify we're back at work view await expect(page).toHaveURL(/tag\/TODAY/);