Skip to content

Close remaining gateway multi-connection test gaps from #114#153

Merged
takashikasuya merged 1 commit into
mainfrom
claude/gateway-multi-connection-followup
Jul 14, 2026
Merged

Close remaining gateway multi-connection test gaps from #114#153
takashikasuya merged 1 commit into
mainfrom
claude/gateway-multi-connection-followup

Conversation

@takashikasuya

Copy link
Copy Markdown
Contributor

Summary

Follow-up to #114 (closed via #115). Re-auditing the four test files that issue touched turned up two remaining depth/coverage gaps within the same scope:

  • GatewayIngressServiceTest: ゲートウェイgRPC多重接続・ポイントリスト配信のゲートウェイ間分離テスト追加 #114's own gap analysis said Ingress had zero multi-gateway concurrency coverage; the fix landed with a two-gateway test (StreamTelemetry_TwoGatewaysConcurrently_NoCrossContamination), but GatewayEgress got a three-gateway depth test (Command_RoutesCorrectly_WithThreeConcurrentGateways). Adds StreamTelemetry_ThreeGatewaysConcurrently_NoCrossContamination to bring Ingress to the same depth as Egress.
  • GatewayProvisioningControllerTest: the full-fetch path has a two-gateway isolation test (Returns200_TwoRegisteredGateways_EachSeesOnlyOwnPoints), but the diff (?since=<etag>) path — which reads from a single shared IGatewayPointListSnapshotStore instance across all gateways in production — had no equivalent isolation test. Adds Diff_SnapshotIsolatedPerGateway_CrossGatewaySinceFallsBackToFull, asserting that one gateway presenting another gateway's (real, retained) etag as since correctly falls back to its own full point list instead of resolving against the wrong gateway's snapshot. (Verified by inspection that MemoryGatewayPointListSnapshotStore's cache key already includes gatewayId — this is a coverage gap, not a live bug — but the isolation now has a test that would go red if that scoping ever regressed.)

Both additions strictly follow the existing patterns in each file (same helper methods, same fake/mock setup, same assertion style) — no production code changes.

Test plan

  • dotnet test --filter "FullyQualifiedName!~IntegrationTest"could not run locally: this environment's egress policy blocks builds.dotnet.microsoft.com (used by dotnet-install.sh), so no .NET SDK is available here. Both new tests were written by strictly mirroring already-passing sibling tests in the same files (same helpers, same fake types, same assertion patterns/overloads) and reviewed carefully for compile-correctness against those exact signatures.
  • The automatic .NET Build & Test job in pr-check.yml (fires on every PR, unlike the manual-trigger-only oss-ci/integration-tests) will build and run these tests — I'll watch it and fix forward if it flags anything.

Checklist

  • I read CONTRIBUTING.md and followed the coding conventions in CLAUDE.md
  • I added or updated tests for the change — this PR is test-only
  • I updated relevant docs (README.md, docs/) if behavior or setup changed — n/a (test-only, no behavior/setup change)

Generated by Claude Code

#114 closed with GatewayIngress covered only for two concurrent gateways
while GatewayEgress got a three-gateway depth test, and the
GatewayProvisioningController diff (?since=) path had no cross-gateway
isolation test even though the full-fetch path did.

- Add StreamTelemetry_ThreeGatewaysConcurrently_NoCrossContamination to
  GatewayIngressServiceTest, bringing Ingress to the same three-gateway
  depth as GatewayEgress's Command_RoutesCorrectly_WithThreeConcurrentGateways.
- Add Diff_SnapshotIsolatedPerGateway_CrossGatewaySinceFallsBackToFull to
  GatewayProvisioningControllerTest, verifying the shared
  IGatewayPointListSnapshotStore correctly scopes diff snapshots by
  gatewayId (a gateway presenting another gateway's etag as `since` falls
  back to its own full point list rather than resolving cross-gateway).

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Signed-off-by: Claude <noreply@anthropic.com>
@takashikasuya
takashikasuya merged commit 4c19ebb into main Jul 14, 2026
6 checks passed
@takashikasuya
takashikasuya deleted the claude/gateway-multi-connection-followup branch July 14, 2026 21:40
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.

2 participants