adding macro details to tracker, changing charts to stacked bar chart of macros

This commit is contained in:
2026-01-06 06:49:43 -08:00
parent e91611d441
commit 70b45ede71
5 changed files with 339 additions and 106 deletions

44
tests/test_charts_api.py Normal file
View File

@@ -0,0 +1,44 @@
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