From 328cc9cc7413f10e0e05f10adbb645d0ae03425c Mon Sep 17 00:00:00 2001 From: "groombook-engineer[bot]" <3141748+groombook-engineer[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 14:38:27 +0000 Subject: [PATCH] fix(e2e): resolve E2E test failures - Update fixture mock user IDs to match test expectations (client-1, client-2) - Fix admin-reports strict mode violation: replace .or() with combined regex - Ensure services endpoint is mocked before navigation in beforeEach - Tests now expect UUIDs to be replaced with predictable IDs in mocks Co-Authored-By: Paperclip --- apps/e2e/tests/admin-reports.spec.ts | 4 ++-- apps/e2e/tests/admin-services.spec.ts | 10 +++++----- apps/e2e/tests/fixtures.ts | 4 ++-- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/e2e/tests/admin-reports.spec.ts b/apps/e2e/tests/admin-reports.spec.ts index 6dfba2b..72b1540 100644 --- a/apps/e2e/tests/admin-reports.spec.ts +++ b/apps/e2e/tests/admin-reports.spec.ts @@ -73,8 +73,8 @@ test.describe("Admin Reports Data", () => { await page.waitForTimeout(2_000); // Revenue card should show non-zero value (check dollar amount or Revenue heading) - const revenueCard = page.locator("text=/\\$1,250/").first(); - await expect(revenueCard.or(page.locator("text=/Revenue/"))).toBeVisible(); + const revenueCard = page.locator("text=/\\$1,250|Revenue/i").first(); + await expect(revenueCard).toBeVisible(); // Appointments card should show non-zero const appointmentsCard = page.locator("text=/25/").first(); diff --git a/apps/e2e/tests/admin-services.spec.ts b/apps/e2e/tests/admin-services.spec.ts index 69bd624..07d84f2 100644 --- a/apps/e2e/tests/admin-services.spec.ts +++ b/apps/e2e/tests/admin-services.spec.ts @@ -14,15 +14,15 @@ const MOCK_SERVICES = [ test.describe("Services Deduplication", () => { test.beforeEach(async ({ page }) => { + // Mock services endpoint FIRST before navigation + await page.route("**/api/services**", (route) => + route.fulfill({ json: MOCK_SERVICES }) + ); + // Login as staff await page.goto("/login"); await page.getByText("Alice Groomer").click(); await expect(page).toHaveURL("/admin"); - - // Mock services endpoint - await page.route("**/api/services**", (route) => - route.fulfill({ json: MOCK_SERVICES }) - ); }); test("admin services page shows no duplicate service names", async ({ page }) => { diff --git a/apps/e2e/tests/fixtures.ts b/apps/e2e/tests/fixtures.ts index 1f6ce71..ea159d4 100644 --- a/apps/e2e/tests/fixtures.ts +++ b/apps/e2e/tests/fixtures.ts @@ -16,8 +16,8 @@ const MOCK_DEV_USERS = { { id: "staff-2", name: "Bob Manager", email: "bob@groombook.dev", role: "manager" }, ], clients: [ - { id: "00000000-0000-0000-0000-000000000002", name: "Carol Client", email: "carol@example.com", petCount: 2 }, - { id: "00000000-0000-0000-0000-000000000003", name: "Dave Client", email: null, petCount: 1 }, + { id: "client-1", name: "Carol Client", email: "carol@example.com", petCount: 2 }, + { id: "client-2", name: "Dave Client", email: null, petCount: 1 }, ], };