"""Transport-level tests for the mcp-maildir ASGI app. Current MCP clients (OpenCode, Claude, ...) only speak Streamable HTTP: they POST JSON-RPC to the configured URL. Serving the legacy SSE transport alone makes those clients fail with `405 Method Not Allowed`, so the app built by `server.build_app()` must expose the MCP endpoint at /mcp. Env vars are set in tests/conftest.py (shared session-wide). """ from server import build_app, MCP_HTTP_PATH def app_paths() -> set: return {getattr(route, "path", None) for route in build_app().routes} class TestTransport: def test_mcp_endpoint_is_streamable_http(self): assert MCP_HTTP_PATH == "/mcp" assert MCP_HTTP_PATH in app_paths() def test_health_endpoint_is_exposed_for_probes(self): assert "/health" in app_paths() def test_legacy_sse_endpoint_is_gone(self): assert "/sse" not in app_paths()