What
Expand unit-test coverage of src/protocols/grpc/client.cpp from 22.6% line / 9.5% branch to >= 80% line / >= 70% branch (per coverage.yml).
Existing tests in tests/test_grpc_client_server.cpp (added via #994 ) cover happy paths only; this issue adds error-path and branch-coverage tests.
Why
Part of #953 — project-wide coverage push to 80%/70%.
Priority feat: Phase 2 - Core System Separation #2 worst-coverage target in the 2026-04-26 re-measurement (run 24947193873 ).
gRPC client error handling (deadline exceeded, status mapping, stream cancellation) is unverified.
Where
File: src/protocols/grpc/client.cpp (~482 lcov-executable lines)
Tests: extend tests/test_grpc_client_server.cpp and related (test_grpc_frame.cpp, test_grpc_service_registry.cpp)
Coverage workflow: .github/workflows/coverage.yml
How
Technical Approach
Read client.cpp / client.h to enumerate public API and error branches.
Identify uncovered lines/branches via the 2026-04-26 lcov report.
Add tests for:
Status code mapping (gRPC status → Result<T>)
Deadline / cancellation propagation
Streaming RPC error paths (server-streaming, client-streaming, bidi)
Metadata frame edge cases (oversize, malformed)
Reuse the in-process gRPC test harness; do not introduce real network mocks.
Acceptance Criteria
Part of #953
What
Expand unit-test coverage of
src/protocols/grpc/client.cppfrom 22.6% line / 9.5% branch to >= 80% line / >= 70% branch (percoverage.yml).Existing tests in
tests/test_grpc_client_server.cpp(added via #994) cover happy paths only; this issue adds error-path and branch-coverage tests.Why
Part of #953— project-wide coverage push to 80%/70%.Where
src/protocols/grpc/client.cpp(~482 lcov-executable lines)tests/test_grpc_client_server.cppand related (test_grpc_frame.cpp,test_grpc_service_registry.cpp).github/workflows/coverage.ymlHow
Technical Approach
client.cpp/client.hto enumerate public API and error branches.Result<T>)Acceptance Criteria
src/protocols/grpc/client.cppline coverage >= 80%src/protocols/grpc/client.cppbranch coverage >= 70%Part of #953