Skip to content

feat(e2e): isolated all-E2E runner script (PP-6dp)#1285

Open
timothyfroehlich wants to merge 4 commits intomainfrom
feat/pp-6dp-e2e-all-isolated
Open

feat(e2e): isolated all-E2E runner script (PP-6dp)#1285
timothyfroehlich wants to merge 4 commits intomainfrom
feat/pp-6dp-e2e-all-isolated

Conversation

@timothyfroehlich
Copy link
Copy Markdown
Owner

Summary

Adds scripts/workflow/e2e-all-isolated.sh and pnpm run e2e:all that runs full + smoke + root specs as separate Playwright invocations, each re-running e2e/global-setup.ts so DB seed state can't carry over between suites.

Replaces the dangerous pnpm exec playwright test (no --config=) which picks up every spec under e2e/ in a single Playwright process and shares mutated DB state across them.

Sequence

  1. pnpm exec playwright test --config=playwright.config.full.ts
  2. pnpm exec playwright test --config=playwright.config.smoke.ts
  3. pnpm exec playwright test --config=playwright.config.ts e2e/machines-filtering.spec.ts (root specs)

Stops at the first failure with ❌ [<suite>] suite failed (exit N) so you know which suite broke.

Permissions

Script committed with mode 644 — invoked via bash scripts/workflow/e2e-all-isolated.sh from package.json so the executable bit isn't required. If you want to call it directly via ./scripts/workflow/e2e-all-isolated.sh, run chmod +x scripts/workflow/e2e-all-isolated.sh && git update-index --chmod=+x scripts/workflow/e2e-all-isolated.sh and push.

Inherited CI failures

main is currently red. Inherited failures from main (PP-q9r/PP-e20/PP-jsh/PP-v7g/PP-49m) will appear in CI; not introduced by this PR. See Tim's status comment on PR #1278.

Note: with those failures still on main, e2e:all will exit at suite 1 (full) until those land. That's the pre-existing red signal, not a regression of this PR. The orchestration logic itself is verified by the script structure (each suite is its own subprocess invocation of playwright test).

Test plan

  • pnpm run check passes (1013 unit tests)
  • shellcheck clean
  • bash -n syntax check passes
  • Once main is green: pnpm run e2e:all exits 0 end-to-end
  • Manual contamination test: mutate state in a full spec, confirm smoke still passes (proves isolation)

Related

  • Child 2 of epic PP-2on
  • Child 4 (PP-278) will document this command in AGENTS.md after this lands

🤖 Generated with Claude Code

Adds scripts/workflow/e2e-all-isolated.sh and pnpm run e2e:all that
runs full + smoke + root specs as separate Playwright invocations,
each re-running e2e/global-setup.ts so DB seed state can't carry
over between suites.

Replaces the dangerous `pnpm exec playwright test` (no --config=)
which picks up every spec under e2e/ in a single Playwright process
and shares mutated DB state across them.

Sequence:
  1. pnpm exec playwright test --config=playwright.config.full.ts
  2. pnpm exec playwright test --config=playwright.config.smoke.ts
  3. pnpm exec playwright test --config=playwright.config.ts \
       e2e/machines-filtering.spec.ts (root specs)

Stops at the first failure with `❌ [<suite>] suite failed (exit N)`
so you know which suite broke. Script committed with mode 644 — invoked
via `bash scripts/workflow/e2e-all-isolated.sh` from package.json so
the executable bit isn't required.

Note: with main currently red on the inherited PP-q9r/PP-e20/PP-jsh/
PP-v7g/PP-49m specs in the `full` suite, e2e:all will fail at suite 1
until those land. That's a pre-existing main-is-red signal, not a
regression of this PR.

Refs PP-2on (epic). Documentation update follows in PP-278.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 5, 2026 01:22
@vercel
Copy link
Copy Markdown

vercel Bot commented May 5, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pin-point Ready Ready Preview, Comment May 5, 2026 8:34pm

@supabase
Copy link
Copy Markdown

supabase Bot commented May 5, 2026

This pull request has been ignored for the connected project udhesuizjsgxfeotqybn due to reaching the limit of concurrent preview branches.
Go to Project Integrations Settings ↗︎ if you wish to update this limit.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a safer “run all E2E” workflow by orchestrating the full, smoke, and root Playwright suites as separate Playwright invocations, preventing DB/seed state contamination across suites.

Changes:

  • Introduces scripts/workflow/e2e-all-isolated.sh to run full, smoke, then the root spec as isolated subprocess runs (fail-fast on first failing suite).
  • Adds pnpm run e2e:all to invoke the new isolated runner script.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
scripts/workflow/e2e-all-isolated.sh New bash workflow script that runs E2E suites in separate Playwright invocations to avoid shared mutated state.
package.json Adds the e2e:all script entrypoint that calls the isolated runner.

Comment thread scripts/workflow/e2e-all-isolated.sh Outdated
@timothyfroehlich timothyfroehlich added the ready-for-review PR passed CI and has no unresolved review comments label May 5, 2026
@timothyfroehlich timothyfroehlich enabled auto-merge (squash) May 5, 2026 20:21
Copilot AI review requested due to automatic review settings May 5, 2026 20:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 2 out of 2 changed files in this pull request and generated no new comments.

timothyfroehlich added a commit that referenced this pull request May 5, 2026
…PP-278) (#1286)

* docs(agents): document e2e:all and warn against raw playwright test (PP-278)

Updates AGENTS.md section 4 "Which Tests to Run":

- Reframes item 6 from "NEVER run e2e:full" to "NEVER run e2e:full
  directly during iteration" — the new e2e:all wraps it as part of a
  legitimate pre-review pass.
- Adds item 7 documenting `pnpm run e2e:all` (introduced in PP-6dp) for
  the "want everything locally before review" case, with explicit
  ~10-15 min runtime and a note that each suite runs in its own
  Playwright invocation with a fresh global-setup between them.
- Adds item 8 warning against `pnpm exec playwright test` without
  --config= — picks up all specs at once and cross-contaminates state.
  Pointers to e2e:all as the safe alternative.

No code changes. Depends on PP-6dp (PR #1285) landing first so the
referenced script exists.

Refs PP-2on (epic).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* docs(agents): scope item 8 to bare playwright invocation only (PP-278)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-review PR passed CI and has no unresolved review comments

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants