Repository navigation
feat: aggregate E2E suites in local Playwright UI - #121
Merged
Merged
Conversation
longlho
marked this pull request as ready for review
October 9, 2026 16:32
longlho
pushed a commit
that referenced
this pull request
Oct 10, 2026
🤖 I have created a release *beep* *boop* --- ## 3.9.0 (2026-10-09) ## What's Changed * feat: prune source maps from browser input directories by @longlho in #114 * fix: let callers control browser test selection by @longlho in #116 * fix: preserve npm package paths in runtime inputs by @longlho in #117 * fix: allow remote caching for local browser tests by @longlho in #119 * fix: leave host browser execution restrictions to callers by @longlho in #120 * feat: aggregate E2E suites in local Playwright UI by @longlho in #121 * fix: resolve caller data paths in Playwright UI by @longlho in #122 * fix: build Playwright UI bundles as declared Bazel outputs by @longlho in #123 **Full Changelog**: v3.8.1...v3.9.0 --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Splitting E2E tests into independently compiled targets should still let developers inspect and run them together in one Playwright UI session.
Add
web_e2e_ui(suites = [...], config = ...), a localbazel runexecutable. Callers can reuse their existing roottest_suite, including nested suites, so CI and UI share one feature-target list. Traversal uses explicit suite entries, without applying Bazel suite tag filters.Existing E2E targets expose their compiled specs and unfiltered debugging runfiles through a provider; the launcher deduplicates those specs and creates an exact discovery config at runtime. Callers supply one shared server/browser config and environment rather than combining each suite's ports and setup hooks. UI sessions have no CI execution deadline, and temporary configuration is removed on exit.
The optional workspace-source mode runs a caller-owned source config and installed Playwright for live source editing and watching. Source discovery belongs to that config; compiled mode selects exactly the declared suites and requires a rebuild to reflect source edits. This rule currently supports managed-server E2E suites.
Browser/developer proof: two independently selected suites appear once in compiled and source discovery; an unselected spec is excluded. Nested-suite discovery also selects both specs once, even with an overlapping direct target. The real Playwright UI served HTTP on localhost, and terminating the launcher removed its temporary configuration. Regression tests cover discovery and project overrides, preserving relative server command working directories, and rejecting empty selections. Existing CI test runfiles and cache policies remain unchanged.