From 9fc9ac896de99b4f061822435355b1aacfc00d5f Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Jun 2026 08:22:17 +0000 Subject: [PATCH 1/3] Initial plan From 88335e6349d3d3853bb406c9f19c6fe002511bf6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Jun 2026 09:02:32 +0000 Subject: [PATCH 2/3] Fix flaky mesocycle E2E exercise selection --- e2e/mesocycle.spec.ts | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/e2e/mesocycle.spec.ts b/e2e/mesocycle.spec.ts index 264a698..7edbb5a 100644 --- a/e2e/mesocycle.spec.ts +++ b/e2e/mesocycle.spec.ts @@ -366,16 +366,18 @@ test.describe('Mesocycle Management', () => { await addExerciseBtn.click(); await page.waitForTimeout(500); - // Select first exercise - const exerciseOptions = page - .locator('.exercise-option, .exercise-item') - .first(); - if (await exerciseOptions.isVisible()) { - await exerciseOptions.click(); + // Select first existing exercise (exclude "Create New Exercise" action) + const exerciseOptions = page.locator( + '.exercise-list .exercise-item:not(.create-exercise-btn)' + ); + if ((await exerciseOptions.count()) > 0) { + await exerciseOptions.first().click(); await page.waitForTimeout(500); // Should see configuration inputs for sets, reps, rest - const setsInput = page.locator('input[type="number"]').first(); + const setsInput = page + .locator('.split-day-editor .exercise-list .exercise-item input[type="number"]') + .first(); await expect(setsInput).toBeVisible(); // Modify sets value From 2f761d64771fdc571e57f7ce6f8294343329a6c7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Jun 2026 09:04:03 +0000 Subject: [PATCH 3/3] Refine E2E selector to skip create action item --- e2e/mesocycle.spec.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/e2e/mesocycle.spec.ts b/e2e/mesocycle.spec.ts index 7edbb5a..1491d63 100644 --- a/e2e/mesocycle.spec.ts +++ b/e2e/mesocycle.spec.ts @@ -367,16 +367,18 @@ test.describe('Mesocycle Management', () => { await page.waitForTimeout(500); // Select first existing exercise (exclude "Create New Exercise" action) - const exerciseOptions = page.locator( - '.exercise-list .exercise-item:not(.create-exercise-btn)' - ); + const exerciseOptions = page + .locator('.exercise-list .exercise-item') + .filter({ hasNotText: 'Create New Exercise' }); if ((await exerciseOptions.count()) > 0) { await exerciseOptions.first().click(); await page.waitForTimeout(500); // Should see configuration inputs for sets, reps, rest const setsInput = page - .locator('.split-day-editor .exercise-list .exercise-item input[type="number"]') + .locator('.split-day-editor .config-group') + .filter({ hasText: 'Sets' }) + .locator('input[type="number"]') .first(); await expect(setsInput).toBeVisible();