Let an e2e run test the working tree's front end (BL-16799) - #8293
Merged
Conversation
hatton
commented
Sep 3, 2026
A launched Bloom serves its React UI from the built output/browser, so an edit to a .tsx file did not reach the suite until somebody rebuilt that bundle, which AGENTS.md reserves for a developer or CI. Set BLOOM_E2E_VITE_PORT=<n> and fixtures/launchBloom.ts passes --vite-port <n> to the Bloom it launches, which then loads every React control from that dev server. Bloom already had the option; nothing passed it. Use 5173 and set the variable. The README, the add-e2e-test skill and the new AUTOMATION-DEBT.md entry all say why: the page list and the toolbox write http://localhost:5173 into their own imports, so on any other port those two frames come up empty, which reads as the feature being missing; and an unset variable does not mean "no dev server", because a dev build probes 5173 by itself, so a run can quietly test a bundle from yesterday. getViteDevPort rejects a value that is not a whole number from 1 to 65535, naming the variable and the value it holds. Passed through untouched, a typo reaches Bloom as --vite-port, and Bloom's ValidateStartupVitePort then stops with a dialog no test can dismiss: every test in the run waits out its launch timeout and reports that Bloom never came up, and nothing in that report names the variable. Adds two AUTOMATION-DEBT.md entries rather than retiring one: "Which front end the e2e suite tests depends on what else is running", for the choice the fixture still does not own, and "A Vite dev server only reaches the whole UI on port 5173", for the two pug files that ignore the port. Verified: type check clean. A full suite run against a dev server on the working tree is what found both entries above. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
hatton
force-pushed
the
BL-16799-vite-port
branch
from
September 3, 2026 19:40
aadbeb2 to
c4fce04
Compare
Only src/BloomE2E/AUTOMATION-DEBT.md conflicted, in two places, and both sides of each belong. Master reworked the table of this stack to give each pull request its number and to name two branches that are not open yet. This branch deletes its own row, so the merge takes master's table without it. Both sides also add text at one spot. Master adds a "being fixed" paragraph to the entry about uploading under a developer's own account; this branch adds the new entry about which front end a run tests. The paragraph stays with the entry it is about, so it comes first, and the new entry follows it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BaWw4EHWrbFF2fNJvMJVC8
Member
Author
|
[Claude Opus 5 from Hatton's machine during devin-review] Consulted Devin on 2026-09-03 22:45 UTC up to commit |
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.
A launched Bloom serves its React UI from the built output/browser, so an edit
to a .tsx file did not reach the suite until somebody rebuilt that bundle,
which AGENTS.md reserves for a developer or CI.
Set BLOOM_E2E_VITE_PORT= and fixtures/launchBloom.ts passes --vite-port
to the Bloom it launches, which then loads every React control from that dev
server. Bloom already had the option; nothing passed it.
Use 5173 and set the variable. The README, the add-e2e-test skill and the new
AUTOMATION-DEBT.md entry all say why: the page list and the toolbox write
http://localhost:5173 into their own imports, so on any other port those two
frames come up empty, which reads as the feature being missing; and an unset
variable does not mean "no dev server", because a dev build probes 5173 by
itself, so a run can quietly test a bundle from yesterday.
Adds two AUTOMATION-DEBT.md entries rather than retiring one: "Which front end
the e2e suite tests depends on what else is running", for the choice the
fixture still does not own, and "A Vite dev server only reaches the whole UI on
port 5173", for the two pug files that ignore the port.
Verified: type check clean. A full suite run against a dev server on the
working tree is what found both entries above.
This is one of eleven stacked pull requests (BL-16799)
Each one pays down one entry of
src/BloomE2E/AUTOMATION-DEBT.md, and each branches off the one before it. Base:BL-16799-component-tests-in-ci. Review only this pull request's own commit; the ones below it are reviewed in their own pull requests. The first six change test and tooling code only; the last five also change product code.BL-16799-automation-scripts— Make the bloom-automation scripts safe to ask for helpBL-16799-vr-collect-failures— Report every failed image comparison in a visual-regression case, not the firstBL-16799-component-tests-in-ci— Run the component-tester Playwright suites nightlyBL-16799-vite-port— Let an e2e run test the working tree's front endBL-16799-type-in-one-call— Type into a text box in one call, not one key press per characterBL-16799-page-screenshot— Capture a whole book page from a testBL-16799-toolbox-registration— Register the toolbox tools from one list both callers shareBL-16799-shell-document— Stop a test attaching to a shell document Bloom does not driveBL-16799-tab-test-ids— Click a workspace tab by a test id, not by its localized labelBL-16799-page-change— Refuse a page change the Edit tab cannot do, and wait before askingBL-16799-collection-languages— Set a collection's languages through an e2e hook, not by writing XMLReplaces #8276, which did all of this in one pull request.
Verification of the whole stack, at its tip: the C# suite passes (3338 passed, 13 skipped), the front-end vitest suite passes (781 passed, 5 skipped), and the
src/BloomE2Esuite passes against a Vite dev server on the working tree (36 passed, 0 skipped, 8.2 minutes). Each pull request also has its own type check and lint.🤖 Generated with Claude Code
Devin review
This change is