mirror of
https://github.com/sstent/foodplanner.git
synced 2026-01-25 19:21:37 +00:00
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
|
|
import pytest
|
|
from datetime import date, timedelta
|
|
from app.database import TrackedDay, TrackedMeal, TrackedMealFood, Meal, MealFood, Food
|
|
|
|
class TestChartsData:
|
|
"""Test charts data API"""
|
|
|
|
def test_charts_api_returns_macros(self, client, sample_meal, db_session):
|
|
"""Test that /api/charts returns protein, fat, and net_carbs"""
|
|
|
|
# Create a tracked day with data
|
|
tracked_day = TrackedDay(person="Sarah", date=date.today(), is_modified=True)
|
|
db_session.add(tracked_day)
|
|
db_session.commit()
|
|
db_session.refresh(tracked_day)
|
|
|
|
# Add meal
|
|
tracked_meal = TrackedMeal(
|
|
tracked_day_id=tracked_day.id,
|
|
meal_id=sample_meal.id,
|
|
meal_time="Breakfast"
|
|
)
|
|
db_session.add(tracked_meal)
|
|
db_session.commit()
|
|
|
|
# Fetch chart data
|
|
response = client.get("/api/charts?person=Sarah&days=7")
|
|
assert response.status_code == 200
|
|
data = response.json()
|
|
assert len(data) > 0
|
|
|
|
# Check fields
|
|
item = data[0]
|
|
assert "date" in item
|
|
assert "calories" in item
|
|
assert "protein" in item
|
|
assert "fat" in item
|
|
assert "net_carbs" in item
|
|
|
|
# Check values (protein > 0 based on sample_meal)
|
|
assert item["protein"] >= 0
|
|
assert item["fat"] >= 0
|
|
assert item["net_carbs"] >= 0
|