"""bluesky-pds — Phase-2 health_check (recipe-maintainer corpus has no health_check.py).

Tests the PDS's `/xrpc/_health` endpoint; asserts 200 + JSON with a `version` field.
"""

from __future__ import annotations

import os
import sys

sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "..", "runner"))
from harness import http as harness_http  # noqa: E402


def test_pds_health_returns_version(live_app):
    """GET /xrpc/_health → 200, JSON {"version": "..."}."""
    url = f"https://{live_app}/xrpc/_health"
    status, body = harness_http.retry_http_get(url, expect_status=200, max_wait=60, interval=3)
    assert status == 200, f"GET {url} HTTP {status} (expected 200)"
    assert isinstance(body, dict) and isinstance(body.get("version"), str) and body["version"], (
        f"GET {url} response is not the expected health envelope: {body!r}"
    )
