from fastapi.testclient import TestClient from app.main import create_app def test_healthz_ok_on_migrated_empty_db(fresh_db_url): app = create_app(database_url=fresh_db_url) with TestClient(app) as client: resp = client.get("/healthz") assert resp.status_code == 200 assert resp.json() == {"status": "ok"} def test_startup_migrates_from_empty(fresh_db_url): # create_app on an empty DB must self-migrate so /healthz reports current. app = create_app(database_url=fresh_db_url) with TestClient(app) as client: assert client.get("/healthz").status_code == 200 # the schema_migrations row exists -> migrations ran at startup import psycopg with psycopg.connect(fresh_db_url) as conn: n = conn.execute("SELECT count(*) FROM schema_migrations").fetchone()[0] assert n >= 1