From dd8cfef4de02a40ff7269dc5d9e1cc3996fdd6a4 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 20 Jun 2026 07:18:55 +0000 Subject: [PATCH] test(cuesheet): isolate empty-state rundown locator for retries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'background edit from empty state' test matched the rundown row by the shared prefix '0 empty-'. Each Playwright retry creates another empty- rundown, so on retry the locator resolved to multiple rows and failed with a strict-mode violation — preventing the (pre-existing, timing-related) flake from ever self-healing. Scope the locator to the unique name the test just created so each attempt is independent and retries can recover. --- e2e/tests/features/202-cuesheet.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/tests/features/202-cuesheet.spec.ts b/e2e/tests/features/202-cuesheet.spec.ts index a40112136..1d41f76b5 100644 --- a/e2e/tests/features/202-cuesheet.spec.ts +++ b/e2e/tests/features/202-cuesheet.spec.ts @@ -119,8 +119,8 @@ test('cuesheet background edit from empty state', async ({ page }) => { await page.getByRole('textbox', { name: 'Rundown title' }).fill(emptyName); await page.getByRole('button', { name: 'Create rundown' }).click(); - // edit it in the cuesheet - await page.getByRole('row', { name: '0 empty-' }).getByTestId('rundown_menu').click(); + // edit it in the cuesheet (scope to the rundown we just created so retries stay isolated) + await page.getByRole('row', { name: emptyName }).getByTestId('rundown_menu').click(); await page.getByText('Edit in cuesheet').click(); // expect to see and empty screen