normogen/backend/scripts/test-api.sh

66 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
# test-api.sh - Test Normogen API endpoints
BASE_URL="http://10.0.10.30:6800"
echo "================================"
echo "Testing Normogen API"
echo "Base URL: $BASE_URL"
echo "================================"
echo ""
# Test 1: Health check
echo "1. Health Check:"
curl -s -w "\nHTTP Status: %{http_code}\n" $BASE_URL/health || echo "FAILED: Connection refused"
echo ""
# Test 2: Ready check
echo "2. Ready Check:"
curl -s -w "\nHTTP Status: %{http_code}\n" $BASE_URL/ready || echo "FAILED: Connection refused"
echo ""
# Test 3: Register user
echo "3. Register User:"
REGISTER_RESPONSE=$(curl -s -X POST $BASE_URL/api/auth/register \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com", "password": "SecurePassword123!", "username": "testuser"}' \
-w "\nHTTP Status: %{http_code}\n")
echo "$REGISTER_RESPONSE"
echo ""
# Test 4: Login
echo "4. Login:"
LOGIN_RESPONSE=$(curl -s -X POST $BASE_URL/api/auth/login \
-H "Content-Type: application/json" \
-d '{"email": "test@example.com", "password": "SecurePassword123!"}' \
-w "\nHTTP Status: %{http_code}\n")
echo "$LOGIN_RESPONSE"
# Extract token
TOKEN=$(echo "$LOGIN_RESPONSE" | grep -o '"access_token":"[^"]*"' | cut -d'"' -f4)
echo ""
echo "Extracted Token: ${TOKEN:0:20}..."
echo ""
# Test 5: Get user profile (only if we got a token)
if [ -n "$TOKEN" ]; then
echo "5. Get User Profile:"
curl -s $BASE_URL/api/users/me \
-H "Authorization: Bearer $TOKEN" \
-w "\nHTTP Status: %{http_code}\n"
echo ""
# Test 6: Logout
echo "6. Logout:"
curl -s -X POST $BASE_URL/api/auth/logout \
-H "Authorization: Bearer $TOKEN" \
-w "\nHTTP Status: %{http_code}\n"
echo ""
else
echo "5. Get User Profile: SKIPPED (No token)"
echo ""
fi
echo "================================"
echo "Tests Complete"
echo "================================"