Commit graph

1 commit

Author SHA1 Message Date
9d3b16e7b3 test(bridge): integration test against real forgejo-mcp (forgejo-mcp-broker-xot)
Spawns a real forgejo-mcp --transport stdio subprocess, runs the
canonical MCP handshake (initialize → notifications/initialized →
tools/list → tools/call get_forgejo_mcp_server_version) through the
bridge, and verifies each step. Validates that the opaque-pipe
assumption holds end-to-end: every JSON-RPC message round-trips
correctly with no hand-rolled framing surprises.

Binary discovery (skipped if none found):
  1. $FORGEJO_MCP_BIN
  2. ../../../forgejo-mcp/forgejo-mcp (sibling-repo built binary)
  3. go build of ../../../forgejo-mcp into a temp dir

Fake Forgejo (httptest.Server) covers the two probes the SDK and
forgejo-mcp's testConnection do at startup:
  - GET /api/v1/version → returns 11.0.0 (>=1.11.0 satisfies SDK gate)
  - GET /api/v1/user    → returns a minimal authenticated user blob

Skipped under -short. Catch-all 404 handler logs unexpected probes so
new SDK or forgejo-mcp behaviour surfaces clearly in test output.

Closes forgejo-mcp-broker-xot. Phase 4 complete.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 16:28:32 +02:00