BL-16822 Inline images: the end-to-end suite, and two test affordances Bloom needed - #8324
BL-16822 Inline images: the end-to-end suite, and two test affordances Bloom needed#8324hatton wants to merge 1 commit into
Conversation
ac6ce1b to
ac0ac2f
Compare
74d2b39 to
240b17d
Compare
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin on 2026-09-07 12:46 MDT up to commit It raised 2 things. Each has its own review thread with the reasoning and the outcome; in short:
2 informational observations were also reported and read but not mirrored as threads (low signal). The fixes were amended into this branch after the review, so the commit above is not the current head; a fresh review is running against the new one. The only GitHub check on this PR is |
ac0ac2f to
646e989
Compare
240b17d to
14cb0e6
Compare
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin again on 2026-09-07 14:00 MDT, on commit It raised 2 new things. Each has its own review thread with the reasoning and the outcome; in short:
It also re-reported the findings the reviewed commit already fixes; those are the first round's threads, which carry their outcomes. These fixes were amended into this branch after the review, so the commit above is not the current head. The only GitHub check on this PR is |
646e989 to
f61e11e
Compare
14cb0e6 to
e78dec7
Compare
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin a third time on 2026-09-07 15:55 MDT, on commit It raised 1 new thing. Each has its own review thread with the reasoning and the outcome; in short:
It also re-reported the findings the reviewed commit already fixes; those are the earlier rounds' threads, which carry their outcomes. These fixes were amended into this branch after the review, so the commit above is not the current head. The only GitHub check on this PR is |
f61e11e to
11a810b
Compare
e78dec7 to
46fa92c
Compare
|
[Claude Opus 5 (1M context) from Hatton's machine during devin-review] Consulted Devin a fourth time on 2026-09-07 16:20 MDT, on commit It raised 2 new things. Each has its own review thread with the reasoning and the outcome; in short:
It also re-reported the findings the reviewed commit already fixes; those are the earlier rounds' threads, which carry their outcomes. These fixes were amended into this branch after the review, so the commit above is not the current head. The only GitHub check on this PR is |
11a810b to
2b5c56f
Compare
46fa92c to
af2d4a6
Compare
…s Bloom needed 39 Playwright tests across 16 spec files, driving a real Bloom. They are the last commit in this stack because they are the check on everything before it, and because they are what a person reading the feature should be able to read as its specification: each file's header says what the test is about, what mechanism made it worth writing, and what was measured. Beyond the feature's own behaviour (add, select, dock, resize, undo, delete, the copy in every language, a save and a reload), the suite puts the feature in the path of what people do to books: change the page size, choose a different layout, cut the block in half in Change Layout mode, overflow the text, duplicate the page, add a language to the collection, paste text containing a picture, press ctrl+z, zoom to 30% and 300%, select-all-delete, and let go of the mouse outside the page. Six defects found that way are fixed in the commits before this one. Two things Bloom does differently under --e2e, both so a test cannot leave something on the developer's screen or in their settings: - A spreadsheet export records the path it wrote, served at e2e/lastExportedSpreadsheet, instead of handing the .xlsx to whatever opens spreadsheets on the machine. Nothing in a test could close that window. - It no longer writes the machine-wide export folder setting, which is shared with the developer's own Bloom. The book's own UserPrefs still get it; they live in the temp collection and die with it. BloomButton now carries its l10n key as a data-testid. That key is the only stable name such a button has -- its text is localized and most callers give it neither an id nor a class -- and localizableMenuItem already does the same. A caller passing its own data-testid still wins. AUTOMATION-DEBT.md records the three things the suite cannot drive: the Export dialog's two buttons and the book menu's More submenu carry no test id, and releasing the mouse outside the WebView2 window cannot be reached by Playwright at all. Notion test case 815 tracks what is covered. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014DCBGajN5YyAYPBenEf1yy
2b5c56f to
4c1b738
Compare
af2d4a6 to
60c908d
Compare
39 Playwright tests across 16 spec files, driving a real Bloom. They are the last
commit in this stack because they are the check on everything before it, and because
they are what a person reading the feature should be able to read as its
specification: each file's header says what the test is about, what mechanism made it
worth writing, and what was measured.
Beyond the feature's own behaviour (add, select, dock, resize, undo, delete, the copy
in every language, a save and a reload), the suite puts the feature in the path of
what people do to books: change the page size, choose a different layout, cut the
block in half in Change Layout mode, overflow the text, duplicate the page, add a
language to the collection, paste text containing a picture, press ctrl+z, zoom to
30% and 300%, select-all-delete, and let go of the mouse outside the page. Six
defects found that way are fixed in the commits before this one.
Two things Bloom does differently under --e2e, both so a test cannot leave something
on the developer's screen or in their settings:
e2e/lastExportedSpreadsheet, instead of handing the .xlsx to whatever opens
spreadsheets on the machine. Nothing in a test could close that window.
the developer's own Bloom. The book's own UserPrefs still get it; they live in the
temp collection and die with it.
BloomButton now carries its l10n key as a data-testid. That key is the only stable
name such a button has -- its text is localized and most callers give it neither an id
nor a class -- and localizableMenuItem already does the same. A caller passing its own
data-testid still wins.
AUTOMATION-DEBT.md records the three things the suite cannot drive: the Export
dialog's two buttons and the book menu's More submenu carry no test id, and releasing
the mouse outside the WebView2 window cannot be reached by Playwright at all.
Notion test case 815 tracks what is covered.
Card: https://issues.bloomlibrary.org/youtrack/issue/BL-16822
🤖 Generated with Claude Code
https://claude.ai/code/session_014DCBGajN5YyAYPBenEf1yy
Devin review
This change is