ci: run UI tests on every PR and deploy, not just Python - #89
Merged
Conversation
The playground page added in extra-org#84 had no UI coverage. Add a Playwright spec for the route wiring (page + widget.js content types), a clean widget mount with the configured greeting, and a full send/stream round-trip against a mocked conversation API. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Playwright suite existed but nothing ran it, so main (which release-please deploys from) could ship a broken widget with green CI. Add a ui job on the same triggers as check: widget + e2e typecheck, stale-bundle check (rebuild widget.js and diff against the committed artifact), widget unit tests, and the full Playwright e2e suite. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Asaf-prog
approved these changes
Aug 2, 2026
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.
What
Per @Asaf-prog's request: run UI tests automatically, not only the Python suite.
uijob inci.yml— runs on every PR and every push tomain(the push release-please deploys from, so a deploy can no longer ship an untested UI):widget.jsfrom the TypeScript source and fails if the committed bundle doesn't matchwidget.test.mjs)agent_manager, the same way production serves ittests/e2e/playground.spec.ts— the/playgroundroute added in feat: expose playground URL on startup #84 had zero UI coverage. Covers the route wiring (/playground+/widget.jscontent types), a clean widget mount with the configured greeting and no console errors, and a full send → streamed-answer round-trip against a mocked conversation API.The existing
widget.spec.tssuite (20 tests) was already in the repo but nothing ever ran it in CI — now it gates every merge.Verified locally
npx playwright test→ 24 passed (20 existing + 4 new)npm run typecheck:widget/typecheck:e2e/test:widget→ cleannpm run build:widget→ byte-identical to the committedwidget.js(stale check passes)make check→ passes (575 tests)Note for maintainers
To make this block merges, add
uias a required status check next tocheckin the branch protection settings (same note as in the workflow header).🤖 Generated with Claude Code