From bdc23f34ffb30d7fe06d42c58200c4fe66144f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Fri, 11 Sep 2026 10:58:50 +0200 Subject: [PATCH] test(e2e): the instance-wide journeys run in one project only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `onboarding-ai-offer.spec.ts` seeds the operator's AI key into `app_settings` and replaces every `provider_health` row for both shared provider tags, then restores both. Its own header says the inputs are instance-wide and it configures serial mode, but serial mode only orders tests within a file: the spec was absent from the project filter, so the mobile project ran it in a second worker concurrently with the desktop one, each holding and clearing state the other was asserting on — and any other spec reading AI availability alongside them. `invite-registration.spec.ts` joins the list for the smaller reason its neighbours carry: two projects registering from one address share the same five-per-fifteen-minutes budget. --- playwright.config.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/playwright.config.ts b/playwright.config.ts index c958c8d77..a09ee667f 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -234,6 +234,18 @@ export default defineConfig({ "setup-flow-a11y.spec.ts", "setup-flow-connect.spec.ts", "setup-flow-locale-overflow.spec.ts", + // The shared-provider offer journey states INSTANCE-wide facts to + // reason about: it writes the operator key into `app_settings` and + // replaces every `provider_health` row for both shared tags, then + // puts both back. Serial mode only orders tests inside one file, so + // a second project would hold and clear that state underneath the + // first — and underneath any other spec that reads AI availability. + "onboarding-ai-offer.spec.ts", + // The invitation journey mints its token and registers from a + // cookie-less window. Two projects registering from one address + // share the five-per-fifteen-minutes budget on `auth:register`, so + // the second one meets a rate limit rather than the form. + "invite-registration.spec.ts", ], use: { // Pixel 5 — Chromium-based mobile profile so CI only needs