From 42b1aed023862775ddd784164365d12ab09fddfa Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Wed, 22 Apr 2026 08:57:17 +0200 Subject: [PATCH] fix(shopping-e2e): beforeEach-Cleanup + checked-Count statt first-Row --- tests/e2e/remote/shopping.spec.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/e2e/remote/shopping.spec.ts b/tests/e2e/remote/shopping.spec.ts index e93f803..1eb606b 100644 --- a/tests/e2e/remote/shopping.spec.ts +++ b/tests/e2e/remote/shopping.spec.ts @@ -3,6 +3,10 @@ import { setActiveProfile, HENDRIK_ID } from './fixtures/profile'; import { clearShoppingCart } from './fixtures/api-cleanup'; test.describe('Einkaufsliste E2E', () => { + test.beforeEach(async ({ request }) => { + await clearShoppingCart(request); + }); + test.afterEach(async ({ request }) => { await clearShoppingCart(request); }); @@ -71,9 +75,13 @@ test.describe('Einkaufsliste E2E', () => { const badgeTextBefore = await countBadge.textContent(); const numBefore = Number((badgeTextBefore ?? '').replace(/\D+/g, '')) || 0; - const firstRow = page.locator('label.row').first(); - await firstRow.locator('input[type=checkbox]').check(); - await expect(firstRow).toHaveClass(/checked/); + // Anzahl abgehakter Zeilen vorher (sollte 0 sein, weil beforeEach cart leert) + const checkedBefore = await page.locator('label.row.checked').count(); + // Erste Zeile abhaken — Playwright laesst die Checkbox direkt interagieren + await page.locator('label.row').first().locator('input[type=checkbox]').check(); + // Nach Store-Refresh sortiert SQL "ORDER BY checked ASC" abgehakte ans + // Ende, also pruefen wir die Gesamtzahl, nicht die Position. + await expect(page.locator('label.row.checked')).toHaveCount(checkedBefore + 1); // Badge muss sinken (nach Store-Refresh) await expect