Skip to content
This repository was archived by the owner on Jun 7, 2026. It is now read-only.

test: improve stream-object test coverage across packages - #79

Merged
matthew-petty merged 3 commits into
mainfrom
test/74-stream-object-coverage
Dec 27, 2025
Merged

test: improve stream-object test coverage across packages#79
matthew-petty merged 3 commits into
mainfrom
test/74-stream-object-coverage

Conversation

@matthew-petty

Copy link
Copy Markdown
Member

Summary

  • Improve test coverage for stream-object implementations across gateway and SDKs
  • Add tests for edge cases, error handling, and fallback extraction strategies

Coverage Improvements

File Before After Improvement
Gateway stream-object.ts 67.98% 78.94% +10.96%
TS SDK stream-object.ts 80% 99.56% +19.56%
TS SDK client.ts 93.75% 100% +6.25%
Python SDK stream_object.py 75% 84% +9%

Changes by Package

TypeScript SDK

  • Tests for null/non-object parsed values (skip handling)
  • Tests for sessionId resolution from result event (fallback path)
  • Tests for sessionId rejection on error before session event
  • Tests for SSE parse errors (critical and non-critical)
  • Tests for NO_SESSION and NO_USAGE flush handlers
  • Tests for streamObject via client interface

Python SDK

  • Tests for sessionId resolution from result event
  • Tests for sessionId rejection on error before session event
  • Tests for SSE_PARSE_ERROR on critical events
  • Tests for non-critical parse errors continuing stream
  • Tests for NO_SESSION when stream ends without session/result

Gateway

  • Tests for warning events (markdown-block, object-extraction, array-extraction fallbacks)
  • Tests for buffer warning on clean exit with unparseable data
  • Tests for interrupt exit code handling
  • Tests for parse error on final object in close handler

Test plan

  • All TypeScript tests pass (bun run test)
  • All Python tests pass (uv run pytest)
  • Coverage thresholds met (80%+ for SDKs, ~79% for gateway)

Closes #74

Add tests for uncovered code paths in stream-object.ts:
- null/non-object parsed values (skip handling)
- sessionId resolution from result event (fallback)
- sessionId rejection on error before session event
- SSE parse errors (critical and non-critical)
- NO_SESSION and NO_USAGE flush handlers

Add test for streamObject via client interface to reach 100%
coverage on client.ts.

Coverage improvements:
- stream-object.ts: 80% → 99.56%
- client.ts: 93.75% → 100%

Closes part of #74
Add tests for uncovered code paths in stream_object.py:
- sessionId resolution from result event when no session event
- sessionId rejection on error before session event
- SSE_PARSE_ERROR for critical events with malformed JSON
- Non-critical parse errors (partial-object) continue streaming
- NO_SESSION when stream ends without session or result events

Coverage improvement:
- stream_object.py: 75% → 84%

Closes part of #74
Add tests for uncovered code paths in stream-object.ts:
- Warning events for markdown-block extraction fallback
- Warning events for object-extraction fallback
- Warning events for array-extraction fallback
- Buffer warning on clean exit with unparseable data
- Interrupt exit code with buffer data (no warning)
- Parse error on final object in close handler

Coverage improvement:
- stream-object.ts: 67.98% → 78.94%

Closes part of #74
@matthew-petty
matthew-petty merged commit c90fd1a into main Dec 27, 2025
2 checks passed
@matthew-petty
matthew-petty deleted the test/74-stream-object-coverage branch December 27, 2025 16:44
@codecov

codecov Bot commented Dec 27, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test: improve stream-object test coverage

1 participant