From 1a28d67218dc8a08c4e720b6ad44cb040cee36aa Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sat, 29 Aug 2026 19:28:53 +0200 Subject: [PATCH] test(admin): fixe l'intercept monitoring (route page == chemin API) La route page `/admin/monitoring` et le chemin API `GET /admin/monitoring` sont identiques : un glob `**/admin/monitoring` capturait aussi la requete document du `cy.visit()`. Le hardcode `http://localhost:3000/...` marchait en local (VITE_API_URL dans apps/web/.env) mais pas en CI (pas de .env -> API en meme origine sur :5173, donc collision totale) : `cy.wait (@getMonitoring)` timeout. `resourceType: "fetch"` epingle l'intercept sur le seul XHR d'AdminApiClient. Verifie en simulant la CI (sans apps/web/.env) : 16/16 specs admin verts. Co-Authored-By: Claude Sonnet 5 --- apps/web/cypress/e2e/admin-monitoring.cy.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/apps/web/cypress/e2e/admin-monitoring.cy.ts b/apps/web/cypress/e2e/admin-monitoring.cy.ts index 81d93bd..fd6ba78 100644 --- a/apps/web/cypress/e2e/admin-monitoring.cy.ts +++ b/apps/web/cypress/e2e/admin-monitoring.cy.ts @@ -52,8 +52,19 @@ describe("Admin monitoring", () => { cy.intercept("GET", "**/admin/auth/me", { statusCode: 200, body: adminBody }); }); + // The page route `/admin/monitoring` and the API path `GET /admin/monitoring` + // are identical — a plain `**/admin/monitoring` glob would also match the + // `cy.visit()` document request (and whether that's same-origin or not + // depends on `VITE_API_URL`, which isn't set in CI). `resourceType: "fetch"` + // pins the intercept to the `AdminApiClient` XHR only. + const monitoringApi = { + method: "GET", + url: "**/admin/monitoring", + resourceType: "fetch", + } as const; + it("renders one card per service with its status and details", () => { - cy.intercept("GET", "http://localhost:3000/admin/monitoring", { + cy.intercept(monitoringApi, { statusCode: 200, body: monitoringFixture(), }).as("getMonitoring"); @@ -74,7 +85,7 @@ describe("Admin monitoring", () => { }); it("shows an error state when the request fails", () => { - cy.intercept("GET", "http://localhost:3000/admin/monitoring", { + cy.intercept(monitoringApi, { statusCode: 500, body: { code: 5000, message: "x" }, });