diff --git a/templates/tracker.html b/templates/tracker.html index 26a25bf..6133a01 100644 --- a/templates/tracker.html +++ b/templates/tracker.html @@ -76,18 +76,27 @@ -
+
{% for meal_food in tracked_meal.meal.meal_foods %} {% set effective_quantity = meal_food.quantity * tracked_meal.quantity %} -
- • {{ meal_food.food.name }}: {{ "%.1f"|format(effective_quantity) }} {{ meal_food.food.serving_unit }} - {% if meal_food.food.serving_size %} - ({{ meal_food.food.serving_size }}) - {% endif %} +
+
+ • {{ meal_food.food.name }} +
+
+
+
+ {{ "%.1f"|format(effective_quantity) }} {{ meal_food.food.serving_unit }} + {% if meal_food.food.serving_size %} + ({{ meal_food.food.serving_size }}) + {% endif %} +
{% endfor %} {% if not tracked_meal.meal.meal_foods %} -
No foods in this meal
+
+
No foods in this meal
+
{% endif %}
diff --git a/tests/test_tracker.py b/tests/test_tracker.py index 875980e..5a91b11 100644 --- a/tests/test_tracker.py +++ b/tests/test_tracker.py @@ -31,22 +31,22 @@ class TestTrackerRoutes: "person": "Sarah", "date": test_date, "meal_id": str(sample_meal.id), - "meal_time": "Breakfast", - "quantity": "1.5" + "meal_time": "Breakfast" }) assert response.status_code == 200 data = response.json() assert data["status"] == "success" - def test_tracker_add_meal_default_quantity(self, client, sample_meal): - """Test adding meal with default quantity""" - test_date = date.today().isoformat() - response = client.post("/tracker/add_meal", data={ - "person": "Stuart", - "date": test_date, - "meal_id": str(sample_meal.id), - "meal_time": "Lunch" - }) + # This test is no longer relevant as quantity is always 1.0 + # def test_tracker_add_meal_default_quantity(self, client, sample_meal): + # """Test adding meal with default quantity""" + # test_date = date.today().isoformat() + # response = client.post("/tracker/add_meal", data={ + # "person": "Stuart", + # "date": test_date, + # "meal_id": str(sample_meal.id), + # "meal_time": "Lunch" + # }) assert response.status_code == 200 data = response.json() assert data["status"] == "success" @@ -394,3 +394,37 @@ class TestTrackerAddFood: assert len(tracked_meal.meal.meal_foods) == 1 assert tracked_meal.meal.meal_foods[0].food_id == sample_food.id assert tracked_meal.meal.meal_foods[0].quantity == 100.0 + + + def test_add_food_to_tracker_with_meal_time(self, client, sample_food, db_session): + """Test POST /tracker/add_food with a specific meal time""" + + tracked_day = TrackedDay(person="Sarah", date=date.today(), is_modified=False) + db_session.add(tracked_day) + db_session.commit() + db_session.refresh(tracked_day) + + response = client.post("/tracker/add_food", json={ + "person": "Sarah", + "date": date.today().isoformat(), + "food_id": sample_food.id, + "quantity": 150.0, + "meal_time": "Dinner" + }) + assert response.status_code == 200 + data = response.json() + assert data["status"] == "success" + + tracked_meals = db_session.query(TrackedMeal).filter( + TrackedMeal.tracked_day_id == tracked_day.id, + TrackedMeal.meal_time == "Dinner" + ).all() + assert len(tracked_meals) == 1 + + tracked_meal = tracked_meals[0] + assert tracked_meal.meal.name == sample_food.name + assert tracked_meal.quantity == 1.0 + + assert len(tracked_meal.meal.meal_foods) == 1 + assert tracked_meal.meal.meal_foods[0].food_id == sample_food.id + assert tracked_meal.meal.meal_foods[0].quantity == 150.0