Skip to content

ci: run UI tests on every PR and deploy, not just Python - #89

Merged
Asaf-prog merged 2 commits into
extra-org:mainfrom
guyash1:ci/ui-tests
Aug 2, 2026
Merged

ci: run UI tests on every PR and deploy, not just Python#89
Asaf-prog merged 2 commits into
extra-org:mainfrom
guyash1:ci/ui-tests

Conversation

@guyash1

@guyash1 guyash1 commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

What

Per @Asaf-prog's request: run UI tests automatically, not only the Python suite.

  • New ui job in ci.yml — runs on every PR and every push to main (the push release-please deploys from, so a deploy can no longer ship an untested UI):
    1. Typecheck of the widget and e2e sources
    2. Stale-bundle check — rebuilds widget.js from the TypeScript source and fails if the committed bundle doesn't match
    3. Widget unit tests (widget.test.mjs)
    4. The full Playwright e2e suite (Chromium) against the widget served by agent_manager, the same way production serves it
  • New tests/e2e/playground.spec.ts — the /playground route added in feat: expose playground URL on startup #84 had zero UI coverage. Covers the route wiring (/playground + /widget.js content 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.ts suite (20 tests) was already in the repo but nothing ever ran it in CI — now it gates every merge.

Verified locally

  • npx playwright test24 passed (20 existing + 4 new)
  • npm run typecheck:widget / typecheck:e2e / test:widget → clean
  • npm run build:widget → byte-identical to the committed widget.js (stale check passes)
  • make check → passes (575 tests)

Note for maintainers

To make this block merges, add ui as a required status check next to check in the branch protection settings (same note as in the workflow header).

🤖 Generated with Claude Code

guyash1 and others added 2 commits August 2, 2026 19:14
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
Asaf-prog self-requested a review August 2, 2026 16:35
@Asaf-prog Asaf-prog assigned Asaf-prog and guyash1 and unassigned Asaf-prog and guyash1 Aug 2, 2026
@Asaf-prog
Asaf-prog requested a review from AmitAvital1 August 2, 2026 16:42
@Asaf-prog Asaf-prog assigned Asaf-prog and guyash1 and unassigned Asaf-prog Aug 2, 2026
@Asaf-prog
Asaf-prog merged commit 38e2f63 into extra-org:main Aug 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants