Skip to content

Teach the conformance harness to run change-feed fixtures - #89

Merged
cuibonobo merged 1 commit into
mainfrom
claude/issue-81-plan-wkphnu
Aug 28, 2026
Merged

Teach the conformance harness to run change-feed fixtures#89
cuibonobo merged 1 commit into
mainfrom
claude/issue-81-plan-wkphnu

Conversation

@cuibonobo

Copy link
Copy Markdown
Member

Summary

  • Adds tests/changeFeedClient.ts: an SSEDecoder (incremental SSE frame parser) and openChangeFeed(), the streaming dispatch helper changeFeedFixtures need — a fixture pins an ordered stream of frames, optionally across mutations made while the connection is open, not a request/response pair like every other block in the harness.
  • Verifies that helper's open/mutate-while-open/collect/timeout mechanics in tests/lib/changeFeedClient.test.ts against a throwaway app built with Hono's own streamSSE (already shipped in the installed hono@4.13.3 — no version bump or hand-rolled server-side SSE framing needed), plus direct unit tests of the decoder (split chunks, keepalive comments, per-frame id semantics, non-JSON data).
  • Imports changeFeedFixtures/changeFeedSequenceFixtures into tests/conformance.test.ts and gives each its own coverage-gated describe block, matching the file's existing pattern.

Every fixture in both arrays is currently in SKIPPEDGET /changes doesn't exist yet (#82). The coverage test still does real work: it fails loudly the moment core adds, removes, or renames a change-feed fixture nobody updated these SKIPPED reasons for. The two sequence fixtures are noted as staying skipped even after #82 lands, since resume support is #84's work.

Nothing in src/ changes — this PR is test-harness scaffolding only, per #81's scope ("this PR's value is the scaffolding plus a coverage test that fails loudly").

Closes #81.

Test plan

  • pnpm exec vitest run — 357 tests pass (18 files)
  • pnpm exec eslint . — clean
  • pnpm exec tsc --noEmit — clean
  • pnpm exec prettier --check — clean

Generated by Claude Code

Adds the SSE streaming dispatch helper (SSEDecoder + openChangeFeed) the
change-feed fixtures need, since they pin an ordered stream of frames
rather than a request/response pair. Verified against a throwaway SSE
test app built with Hono's own streamSSE, proving the open/mutate-while-
open/collect/timeout mechanics work before there's a real GET /changes
to point them at.

changeFeedFixtures and changeFeedSequenceFixtures are imported and given
their own coverage-gated describe blocks, entirely skipped for now — no
src/routes/changes.ts exists yet (#82). The two sequence fixtures stay
skipped even after #82 lands, since resume support is #84's work.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014u78zif6NgggtFVbiSZ2co
@cuibonobo
cuibonobo merged commit 09a7f13 into main Aug 28, 2026
4 checks passed
@cuibonobo
cuibonobo deleted the claude/issue-81-plan-wkphnu branch August 28, 2026 21:41
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.

Teach the conformance harness to run change-feed fixtures

2 participants