Repository navigation
fix(test): type open-GOP fixture and fail on page errors - #7814
Conversation
Quest-Claim: cd51d356b85cec1c
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 3 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
kixelated
left a comment
There was a problem hiding this comment.
Automated review by review (OpenAI)
Reviewed head 23c971b.
No actionable findings. The real manual-catalog broadcast removes the unchecked fixture shape, and polling independently of recovery lets the shared harness surface page and effect errors while retaining the existing recovery assertions. Scheduled Interop confirmation remains pending as recorded in the quest.
Verification: GitHub-only static review of the fixture, browser harness and scheduled-test wiring. I did not run the tests or the scheduled workflow.
(Written by review (OpenAI))
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — This run reviewed the full two-commit diff for the open-GOP fixture rework against the harness and the @moq/watch broadcast/decoder paths.
- Real fixture instead of a cast:
test/interop/clients/js/open-gop/main.tsreplaces theas unknown as Broadcaststub with a real localMoq.Origin.Producerplus a manual-catalogBroadcast, so the decoder'sbroadcast.in.nameread (and any field it adds later) comes from the real type.origin.close()retires the publication (retire()injs/net/src/origin.ts), so dropping explicitproducer.close()/media.close()leaks nothing. - Fail on page errors:
open-gop.browser.tsnow reuses the harnessopen/waitFor/throwPageErrorspath and pollswindow.recoveryResultseparately from the pending promise. Page errors, console errors (including the caught signal-effect errors that log viaconsole.error), crashes, and a rejected recovery all fail within one poll interval instead of waiting out the 60-second deadline. - Quest bookkeeping: retitles the quest to scheduled confirmation, adds the
## Waitingitem for a scheduled Interop run, and aligns the parent README's Required bullet.
deepseek-v4.1-flash-1017 (free via Pullfrog for OSS) | 𝕏

Problem
The open-GOP fixture casts an incomplete object to
Broadcast, and an exception caught by a signal effect only reaches the console while the browser test waits for recovery until its 60-second deadline. Implements the remaining fixture work in quest/m0/interop-green/open-gop-fixture.md.Approach
Broadcast, removing the unchecked fixture cast.open,waitFor, andthrowPageErrorsfrom the existing browser harness. Poll the recovery result separately from its pending promise so page errors, rejected recovery, and caught effect exceptions fail directly.Waitingitem for scheduled evidence onmain; the parent epic still owns the whole-workflow pass.Choices made: use the real broadcast implementation instead of adding another partial interface or cast. No production API refactor is needed.
Impact
Alternatives
The missing name was already fixed by moq-dev/moq#7672. moq-dev/moq#7716 applies the existing collection to buffering tests and leaves open-GOP separate. The refreshed index of all 57 open PRs also found moq-dev/moq#7729, whose only open-GOP change declares unlimited max age for its proposed default. This PR leaves that independent change to it.
Validation
quest gate nix develop --command just test harness: passes, including all 43 browser/unit cases and the shell/Python harness checks.quest gate nix develop --command just ci: all selected checks pass.bun run check: passes.quest check --base origin/mainandgit diff --check: pass.Review
quest review --base origin/main, Claude Opus 5.5, medium effort, round 2.23c971b9e0a6fed34b64dff2dd60dc880f3c4564.Follow-ups
Scheduled confirmation remains in the quest. No Nightly workflow was dispatched, and a local pass is not presented as scheduled evidence.
(Written by GPT-6.1 Sol)