Skip to content

Add durable settings browser test suite#5773

Draft
BillLeoutsakosvl346 wants to merge 2 commits into
stagingfrom
e2e/settings-playwright
Draft

Add durable settings browser test suite#5773
BillLeoutsakosvl346 wants to merge 2 commits into
stagingfrom
e2e/settings-playwright

Conversation

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor

Summary

  • establish a reusable Playwright foundation for full-stack browser coverage
  • add deterministic authenticated personas spanning workspace, organization, plan, and platform authority
  • cover settings navigation, authorization, entitlements, and critical workflows across account, organization, and workspace routes

Delivery plan

  • Playwright foundation and hosted/billing Chromium profile
  • Reusable data, Better Auth, and persona fixtures
  • Settings navigation acceptance contract
  • Authorization, entitlement, and unsaved-change coverage
  • Secrets and API-key workflows
  • Organization and enterprise workflows
  • Stability validation and required CI gate

Test plan

  • Existing Vitest and build checks remain green
  • Settings E2E suite runs against migrated isolated pgvector/Postgres
  • Playwright reports, traces, and screenshots upload on failure
  • Full Chromium suite passes five consecutive runs with retries disabled

This is the draft integration PR. Each delivery step will be reviewed in a focused PR targeting e2e/settings-playwright before this PR is made ready for final review.

Made with Cursor

Allow focused child PRs to receive normal CI before the completed suite returns to staging.
@vercel

vercel Bot commented Jul 20, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment Jul 21, 2026 2:49am

Request Review

* test(e2e): add reusable Playwright foundation

Establish a hermetic full-stack browser harness so settings and future surfaces can exercise real authentication, APIs, and isolated database state safely.

* test(e2e): harden runner lifecycle and artifacts

Fail closed on stale processes, preserve cleanup during interruption, and keep credentials and personal fixture data out of uploaded diagnostics.

* test(e2e): tighten isolation and shutdown guards

Make destructive database operations and service bindings strictly local while ensuring interrupted runs fully stop managed children before cleanup.

* test(e2e): finalize harness safety boundaries

Close the remaining lifecycle, credential-isolation, and CLI escape hatches so future persona and settings suites can build on a fail-closed foundation.

* test(e2e): harden interrupted-run cleanup

Use a detached cleanup supervisor so repeated signals cannot interrupt process-group shutdown or forced removal of the guarded run database.

* test(e2e): guard signal cleanup edge cases

Prevent empty process-group targets and verify forced-drop retries against final database state so interrupted runs cannot self-signal or report false cleanup failures.

* test(e2e): require exact host and race-safe signals

Reject dual-stack host mappings that cannot reach IPv4-only services and tolerate child exit races during process-group signal fallback.

* test(e2e): force IPv4 for hosted test origin

Accept safe dual-stack loopback resolution while pinning Chromium and Node traffic to 127.0.0.1 so CI reaches IPv4-only services reliably.

* test(e2e): settle readiness exit race

Mark successful readiness before the managed process completion branch can reject, preventing later normal shutdown from surfacing an abandoned promise failure.

* test(e2e): propagate IPv4 preference to probes

Keep Node-based Playwright requests on the same IPv4 path as Chromium and use direct loopback for orchestrator probes under dual-stack CI DNS.

---------

Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant