mirror of
https://github.com/sstent/foodplanner.git
synced 2025-12-05 23:51:46 +00:00
fixing meal edit on teampltes page
This commit is contained in:
102
test_edit_meal.sh
Executable file
102
test_edit_meal.sh
Executable file
@@ -0,0 +1,102 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Curl-based test script for exercising the Edit Tracked Meal modal functionality.
|
||||
# This script demonstrates how to:
|
||||
# 1. Update the quantity of a food in a tracked meal.
|
||||
# 2. Remove a food from a tracked meal.
|
||||
# 3. Add a new food to a tracked meal.
|
||||
#
|
||||
# Prerequisites:
|
||||
# - The FastAPI server must be running (e.g., uvicorn main:app --reload --port 8000).
|
||||
# - You need a valid tracked_meal_id (from the database or API response).
|
||||
# - You need valid food_id(s) (from the foods table or API).
|
||||
#
|
||||
# How to find IDs:
|
||||
# 1. tracked_meal_id: Use the GET /tracker endpoint or query the database:
|
||||
# SELECT id FROM tracked_meal WHERE tracked_day_id = (SELECT id FROM tracked_day WHERE person = 'Sarah' AND date = '2025-10-02');
|
||||
# 2. food_id: Use the GET /api/foods endpoint or query:
|
||||
# SELECT id, name FROM food LIMIT 5;
|
||||
#
|
||||
# Base URL (adjust if your server is on a different host/port)
|
||||
BASE_URL="http://localhost:8999"
|
||||
|
||||
# Set your specific IDs here (replace with actual values)
|
||||
TRACKED_MEAL_ID=1 # Example: Replace with your tracked_meal_id
|
||||
FOOD_ID_TO_UPDATE=1 # Example: Food to update quantity
|
||||
FOOD_ID_TO_REMOVE=2 # Example: Food to remove
|
||||
FOOD_ID_TO_ADD=3 # Example: New food to add
|
||||
|
||||
echo "Testing Edit Tracked Meal functionality..."
|
||||
echo "Using tracked_meal_id: $TRACKED_MEAL_ID"
|
||||
echo ""
|
||||
|
||||
# 1. Update Quantity of a Food
|
||||
echo "1. Updating quantity of food $FOOD_ID_TO_UPDATE to 200g..."
|
||||
curl -X POST "$BASE_URL/tracker/update_tracked_meal_foods" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"tracked_meal_id": '"$TRACKED_MEAL_ID"',
|
||||
"foods": [
|
||||
{
|
||||
"food_id": '"$FOOD_ID_TO_UPDATE"',
|
||||
"grams": 200.0
|
||||
}
|
||||
],
|
||||
"removed_food_ids": []
|
||||
}'
|
||||
|
||||
echo ""
|
||||
echo "Expected response: {\"status\": \"success\"}"
|
||||
echo ""
|
||||
|
||||
# Verify the update (optional: GET the foods)
|
||||
echo "2. Verifying updated foods..."
|
||||
curl -X GET "$BASE_URL/tracker/get_tracked_meal_foods/$TRACKED_MEAL_ID"
|
||||
|
||||
echo ""
|
||||
echo "----------------------------------------"
|
||||
echo ""
|
||||
|
||||
# 3. Remove a Food
|
||||
echo "3. Removing food $FOOD_ID_TO_REMOVE..."
|
||||
curl -X POST "$BASE_URL/tracker/update_tracked_meal_foods" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"tracked_meal_id": '"$TRACKED_MEAL_ID"',
|
||||
"foods": [],
|
||||
"removed_food_ids": ['"$FOOD_ID_TO_REMOVE"']
|
||||
}'
|
||||
|
||||
echo ""
|
||||
echo "Expected response: {\"status\": \"success\"}"
|
||||
echo ""
|
||||
|
||||
# Verify removal
|
||||
echo "4. Verifying removed foods..."
|
||||
curl -X GET "$BASE_URL/tracker/get_tracked_meal_foods/$TRACKED_MEAL_ID"
|
||||
|
||||
echo ""
|
||||
echo "----------------------------------------"
|
||||
echo ""
|
||||
|
||||
# 5. Add a New Food
|
||||
echo "5. Adding new food $FOOD_ID_TO_ADD with 150g..."
|
||||
curl -X POST "$BASE_URL/tracker/add_food_to_tracked_meal" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"tracked_meal_id": '"$TRACKED_MEAL_ID"',
|
||||
"food_id": '"$FOOD_ID_TO_ADD"',
|
||||
"grams": 150.0
|
||||
}'
|
||||
|
||||
echo ""
|
||||
echo "Expected response: {\"status\": \"success\"}"
|
||||
echo ""
|
||||
|
||||
# Verify addition
|
||||
echo "6. Verifying added foods..."
|
||||
curl -X GET "$BASE_URL/tracker/get_tracked_meal_foods/$TRACKED_MEAL_ID"
|
||||
|
||||
echo ""
|
||||
echo "Script completed. Check responses for success/error messages."
|
||||
echo "Note: After running, the tracked day will be marked as modified."
|
||||
Reference in New Issue
Block a user