Files
Meal-Planner/backend/tests/test_llm_plan.py
T
admin 2695ba0232
CI / backend (pytest + alembic) (push) Canceled after 0s
CI / frontend (build) (push) Canceled after 0s
feat(meals): enforce three lower-calorie dinners with media
2026-09-01 10:11:36 -07:00

40 lines
1.3 KiB
Python

import uuid
from app.api.llm_plan import _validate_picks
def test_validate_picks_accepts_only_dinners():
recipe_id = str(uuid.uuid4())
picks = _validate_picks(
[
{"day_of_week": 1, "meal_type": "breakfast", "recipe_id": recipe_id},
{"day_of_week": 1, "meal_type": "lunch", "recipe_id": recipe_id},
{"day_of_week": 1, "meal_type": "dinner", "recipe_id": recipe_id},
],
{recipe_id},
)
assert [(pick.day_of_week, pick.meal_type) for pick in picks] == [(1, "dinner")]
def test_validate_picks_limits_schedule_to_three_unique_dinners():
recipe_ids = [str(uuid.uuid4()) for _ in range(5)]
picks = _validate_picks(
[
{"day_of_week": 1, "meal_type": "dinner", "recipe_id": recipe_ids[0]},
{"day_of_week": 2, "meal_type": "dinner", "recipe_id": recipe_ids[1]},
{"day_of_week": 3, "meal_type": "dinner", "recipe_id": recipe_ids[2]},
{"day_of_week": 3, "meal_type": "dinner", "recipe_id": recipe_ids[3]},
{"day_of_week": 5, "meal_type": "dinner", "recipe_id": recipe_ids[4]},
],
set(recipe_ids),
)
assert [(pick.day_of_week, pick.recipe_id) for pick in picks] == [
(1, recipe_ids[0]),
(3, recipe_ids[2]),
(5, recipe_ids[4]),
]