E-Commerce-Module/db/test/test-api.sh
2025-04-25 00:41:30 -05:00

67 lines
No EOL
2.1 KiB
Bash

#!/bin/bash
echo "Starting backend service..."
docker compose up -d db backend
echo "Waiting for backend to start..."
sleep 5
echo "Testing API health endpoint..."
curl -s http://localhost:4000/health | jq
echo "Fetching product categories..."
curl -s http://localhost:4000/api/products/categories/all | jq
echo "Fetching all products..."
curl -s http://localhost:4000/api/products | jq
echo "Fetching Rock category products..."
curl -s http://localhost:4000/api/products/category/Rock | jq
echo "Testing user registration..."
curl -s -X POST http://localhost:4000/api/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com","firstName":"Test","lastName":"User"}' | jq
echo "Testing login request..."
curl -s -X POST http://localhost:4000/api/auth/login-request \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com"}' | jq
# Save the auth code for the next step
AUTH_CODE=$(curl -s -X POST http://localhost:4000/api/auth/login-request \
-H "Content-Type: application/json" \
-d '{"email":"test@example.com"}' | jq -r '.code')
echo "Testing login verification with code: $AUTH_CODE"
RESPONSE=$(curl -s -X POST http://localhost:4000/api/auth/verify \
-H "Content-Type: application/json" \
-d "{\"email\":\"test@example.com\",\"code\":\"$AUTH_CODE\"}")
echo $RESPONSE | jq
USER_ID=$(echo $RESPONSE | jq -r '.userId')
API_KEY=$(echo $RESPONSE | jq -r '.token')
echo "User ID: $USER_ID"
echo "API Key: $API_KEY"
echo "Verifying API key..."
curl -s -X POST http://localhost:4000/api/auth/verify-key \
-H "Content-Type: application/json" \
-d "{\"apiKey\":\"$API_KEY\"}" | jq
echo "Testing cart for user: $USER_ID with API key"
curl -s http://localhost:4000/api/cart/$USER_ID \
-H "X-API-Key: $API_KEY" | jq
echo "Adding a product to the cart..."
PRODUCT_ID=$(curl -s http://localhost:4000/api/products | jq -r '.[0].id')
curl -s -X POST http://localhost:4000/api/cart/add \
-H "Content-Type: application/json" \
-d "{\"userId\":\"$USER_ID\",\"productId\":\"$PRODUCT_ID\",\"quantity\":1}" | jq
echo "Showing updated cart..."
curl -s http://localhost:4000/api/cart/$USER_ID | jq
echo "Test complete!"