"""plausible — Phase-2 health_check.""" 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_plausible_root_serves(live_app): """GET /api/health → 200 (clickhouse+postgres ready). `/` is NOT a reliable health probe (500s during datastore init; 302s to /register once ready — and 500'd permanently under the pre-2026-06-11 62-char SECRET_KEY_BASE, see recipe_meta.EXTRA_ENV); the dedicated /api/health endpoint is. """ # The custom tier runs AFTER the backup/restore tier, which disrupts postgres under the app and # restarts it. v3 (community-edition) then boots through `sleep 10` + `db createdb` + `db migrate` # + cache warmers before /api/health flips to 200, which does not fit in 60s — that is what put # this recipe RED on build 1224 while install/upgrade/backup/restore all passed. The assertion is # unchanged (still a hard 200 from the real readiness endpoint); only the wait matches the boot # profile the recipe already declares via recipe_meta.HTTP_TIMEOUT (1200). url = f"https://{live_app}/api/health" status, _ = harness_http.retry_http_get(url, expect_status=(200,), max_wait=300, interval=5) assert status == 200, f"GET {url} HTTP {status}"