Conversation
The "Edit with AI..." integration had two Playwright files that could only be run by hand. They attached over CDP to whatever Bloom the developer happened to have open, needed a book already selected, and wrote into that book. Nothing in CI ran them, so the coverage they describe was protecting nothing. They move into src/BloomE2E, whose fixture launches its own Bloom on a temp copy of a collection, and which the nightly already runs as a selectable suite. The tests now select their own book, so they depend on no developer state and touch no real book. What they cover is the part the Vitest suite cannot reach. aiImageEditorOverlay.test.ts exercises Bloom's half of the postMessage protocol against a stub, so it passes just as happily when browser/aiImageEditor is missing entirely, which is how the editor once stopped opening without any test noticing. With that folder renamed away, the boot test now fails with Bloom's own "not included in this build" message. Per the add-e2e-test skill, the launch and file-endpoint knowledge lives in a new helpers/aiImageEditor.ts, so the tests themselves carry no API paths. Notion test cases 816 and 817. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
[Claude Opus 5 from Hatton's machine during add-e2e-test]
Bloom production code changes
None. The diff is
src/BloomE2E/**,.github/**, Markdown, and the deletion of twoPlaywright
*.uitest.tsfiles. No Bloom production code changed; Devin not run.Purpose
The "Edit with AI…" integration had two Playwright files that nothing in CI ran. They
attached over CDP to whatever Bloom the developer happened to have open, needed a book
already selected, and wrote into that book, so the coverage they describe was protecting
nothing. This moves them into
src/BloomE2E, whose fixture launches its own Bloom on atemp copy of a collection, and which the nightly already runs as a selectable suite.
What they cover is the part the Vitest suite cannot reach.
aiImageEditorOverlay.test.tsexercises Bloom's half of the postMessage protocol against a stub, so it passes just as
happily when
browser/aiImageEditoris missing entirely, which is how the editor oncestopped opening without any test noticing.
Neither card existed before. Test case 805, "AI Image Editing (basic tests)", stays
entirely manual: it covers the UI and real AI generation, and none of its steps is
automated here, so it was not split.
Steps
A5 Portraitin thebasiccollection, the one precondition the launch has.way the overlay does.
How it verifies the result
The boot test waits for the editor app's own
readyhandshake on thebloom-ai-image-toolschannel, which the app posts only after its HTML and JS haveloaded and its host component has mounted. The file tests read the HTTP status Bloom
answers with, plus the body for the round-trip and the content-type for the image, and
expect 401 for a missing or wrong session and 400 for a refused name.
I checked the boot test is not falsely passing: with
output/browser/aiImageEditorrenamed away it fails with Bloom's own message,
launch returned 503. Body: The AI Image Editor is not included in this build of Bloom.Five tests, green three runs in a row, about six seconds after Bloom starts. No
Bloom.exefrom the worktree survived any run.Problems
The UI path, right-clicking an image and choosing "Edit with AI…", is still not covered
and has no journey test; Notion 805 runs it by hand. Loading the iframe directly, as the
boot test does, deliberately stops short of that: it does not register the overlay's own
postMessage handler, so the commit and current-page save path is not exercised.
Also in this PR: a papercut recording that
.github/skills/add-e2e-test/SKILL.mdstillsays the BloomE2E suite is not wired into the nightly, when
nightly.ymlhas run it as aselectable suite for a while. That claim sent me planning workflow changes that already
existed.
🤖 Generated with Claude Code
Devin review
This change is