Public Access
35 lines
991 B
Python
35 lines
991 B
Python
"""End-to-end: ingredient + recipe + match all wired together."""
|
|
import pytest
|
|
|
|
pytestmark = pytest.mark.requires_postgres
|
|
|
|
|
|
def _admin() -> dict:
|
|
return {"Authorization": "Bearer test-admin-token"}
|
|
|
|
|
|
def test_seed_data_present_and_resolvable(client):
|
|
r = client.get("/api/recipes")
|
|
assert r.status_code == 200
|
|
recipes = r.json()
|
|
assert len(recipes) >= 30, f"expected >=30 seeded recipes, got {len(recipes)}"
|
|
|
|
|
|
def test_resolve_against_seeded_ingredients(client):
|
|
r = client.post(
|
|
"/api/admin/recipes/resolve-ingredient",
|
|
json={"text": "1 lb chicken thighs"},
|
|
headers=_admin(),
|
|
)
|
|
assert r.status_code == 200
|
|
candidates = r.json()["candidates"]
|
|
assert candidates, "expected at least one candidate"
|
|
assert "chicken" in candidates[0]["name"].lower()
|
|
|
|
|
|
def test_match_job_runs_against_seeded_data(db_session):
|
|
from app.services.matcher import run_match_job
|
|
|
|
written = run_match_job(db_session)
|
|
assert written >= 0
|