apps/dotcom/client/e2e/README.md
Issue #9185 is moving dotcom tests toward user scenarios instead of isolated UI smoke tests. New collaborative dotcom coverage should prefer the scenario fixture in fixtures/scenario-test.ts.
*.scenario.spec.ts. They run in the chromium-scenarios project with fullyParallel: true.yarn e2e-dotcom from the repo root, or yarn workspace dotcom e2e from this workspace. This runs the scenario project only.yarn workspace dotcom e2e-scenarios.yarn e2e-dotcom-smoke from the repo root, or yarn workspace dotcom e2e-smoke from this workspace. These specs live in tests/smoke, still use the reset-based chromium project, and are intentionally separate from the default runner. They do not run on CI; migrate coverage out of tests/smoke into scenario tests as the follow-ups below are unblocked.yarn e2e-dotcom-all from the repo root, or yarn workspace dotcom e2e-all from this workspace, when comparing old and new coverage.owner, member, and visitor.scenario.name('label') for files and workspaces so test data is unique to the run.chromium project so explicit all-project runs can share a command while legacy tests still reset their own users.scenario.createPersonalFile, scenario.createSharedFile, scenario.createGuestEditFile, scenario.createGuestViewFile, scenario.createPublishedFile, scenario.importFileFromUrl, scenario.downloadFileFromSidebar, scenario.setSharedLinkType, scenario.createWorkspaceWithMember, and scenario.createWorkspaceWithRemovedMember for common setup.scenario.createLegacyRouteFixture for legacy /r, /ro, /v, /s, and history route setup. It creates namespaced debug-only worker data instead of relying on shared production-like fixtures.actor.goto waits for the canvas, auth state, app store hydration when a signed-in app is present, mounted editor, file room connection, visitor access metadata, and pending app mutations. Use the narrower actor.waitForAuthLoaded, actor.waitForAppStoreHydrated, actor.waitForEditorReady, actor.waitForFileRoomConnected, actor.waitForVisitorAccessMetadata, actor.waitForMutationResolution, and actor.waitForSessionClosed helpers when a test needs to prove a specific transition. Avoid new sleeps unless the product intentionally waits.The remaining auth edge cases are still tracked by issue #9185. Keep them out of the scenario project until they have Clerk-level mocking or stable account state that can run without per-test shared-user reset.
Follow-up migration groups:
missing_fields payloads, and missing email-code factor data once Clerk responses can be mocked below the route layer.