from __future__ import annotations from fastapi.testclient import TestClient from src.astro_mcp.server import create_app def test_health_endpoint_smoke() -> None: client = TestClient(create_app()) res = client.get("/health") assert res.status_code == 200 data = res.json() assert data["ok"] is True assert data["server"] == "astro-mcp" assert data["port"] == 7016 assert "version" in data def test_root_lists_tools() -> None: client = TestClient(create_app()) res = client.get("/") assert res.status_code == 200 data = res.json() assert data["server"] == "astro-mcp" assert data["status"] == "ready" expected_tools = { "get_planetary_positions", "calculate_natal_chart", "calculate_transit_chart", "calculate_synastry_chart", "calculate_composite_chart", "calculate_davison_chart", "get_transit_preview", "person_manage", "list_house_systems", "calculate_natal_chart_by_id", "calculate_transit_chart_by_id", "calculate_synastry_chart_by_id", "calculate_composite_chart_by_id", "calculate_davison_chart_by_id", "get_transit_preview_by_id", } actual_tools = set(data["tools"]) assert expected_tools.issubset(actual_tools), \ f"Missing tools: {expected_tools - actual_tools}" assert data["mcp"] == {"sse": "/mcp/sse", "messages": "/mcp/messages"}