Mark G5 (widget frontend e2e) closed - #537
Merged
Merged
Conversation
The widget's Playwright specs existed but no CI job ever invoked them, so the suite was standing coverage that had never executed — and 2 of 8 were red when first run. Records what closed it, plus the two findings worth generalising: a "mock" spec that silently depended on production, and a streaming assertion that could not detect streaming being removed. Implementation: SmooAI/chat-widget#46 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.
Closes G5 in
docs/Planning/Feature Gaps.md(per the standing rule from #534 that closing a gap edits that file).Implementation: SmooAI/chat-widget#46.
What actually closed it
The gap doc said the widget had no Playwright suite. It had six spec files — but
ci.ymlnever invokedtest:e2e, so nothing had ever run. Run for the first time, 2 of 8 were red:repro-stream-mock.spec.tsmockedWebSocketbut notfetch, so the widget POSTed the real production/internal/resume-by-fingerprinton mount, got a 403, and the console error tripped its own page-error assertion. A "mock" spec that depended on prod being reachable.stream_tokenframe also satisfies. Confirmed by deleting streaming from the mock and watching the spec stay green.Both fixed, plus a new
e2e/streaming.spec.tsthat withholdseventual_responseso only stream tokens can produce on-screen text, and a PR/nightly CI split where a missingSMOOAI_GATEWAY_KEYfails loudly instead of skipping green.Verified on the widget PR: the
E2E (credential-free)job ran onpull_requestand logged9 passed, 0 skipped.Docs-only change; no code touched in this repo.
🤖 Generated with Claude Code