99 lines
2.4 KiB
Bash
99 lines
2.4 KiB
Bash
#!/bin/bash
|
|
# System Integration Test Script
|
|
|
|
echo "🔍 System Integration Test"
|
|
echo "======================================"
|
|
echo ""
|
|
|
|
# Colors
|
|
GREEN='\033[0;32m'
|
|
RED='\033[0;31m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
PASSED=0
|
|
FAILED=0
|
|
|
|
# Test function
|
|
test_endpoint() {
|
|
local name="$1"
|
|
local url="$2"
|
|
local expected="$3"
|
|
|
|
printf "Testing: %-30s " "$name"
|
|
|
|
response=$(curl -s -o /dev/null -w "%{http_code}" --max-time 3 "$url" 2>/dev/null)
|
|
|
|
if [ "$response" = "$expected" ]; then
|
|
echo -e "${GREEN}✓ PASS${NC} (HTTP $response)"
|
|
((PASSED++))
|
|
return 0
|
|
else
|
|
echo -e "${RED}✗ FAIL${NC} (HTTP $response, expected $expected)"
|
|
((FAILED++))
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Test JSON response
|
|
test_json_endpoint() {
|
|
local name="$1"
|
|
local url="$2"
|
|
|
|
printf "Testing: %-30s " "$name"
|
|
|
|
response=$(curl -s --max-time 3 "$url" 2>/dev/null)
|
|
|
|
if echo "$response" | jq -e '.success == true' > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✓ PASS${NC} (Valid JSON)"
|
|
((PASSED++))
|
|
return 0
|
|
else
|
|
echo -e "${RED}✗ FAIL${NC} (Invalid or error response)"
|
|
((FAILED++))
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
echo "Backend API Tests:"
|
|
echo "-------------------"
|
|
test_endpoint "Health Check" "http://localhost:8080/health" "200"
|
|
test_json_endpoint "Songs API" "http://localhost:8080/api/songs"
|
|
test_json_endpoint "Profiles API" "http://localhost:8080/api/profiles"
|
|
test_json_endpoint "Lists API" "http://localhost:8080/api/lists"
|
|
test_json_endpoint "Stats API" "http://localhost:8080/api/stats"
|
|
|
|
echo ""
|
|
echo "Frontend Tests:"
|
|
echo "-------------------"
|
|
test_endpoint "Local Frontend" "http://localhost:5100" "200"
|
|
test_endpoint "External HTTPS" "https://houseofprayer.ddns.net" "200"
|
|
|
|
echo ""
|
|
echo "Database Tests:"
|
|
echo "-------------------"
|
|
printf "Testing: %-30s " "PostgreSQL Connection"
|
|
if PGPASSWORD='MySecurePass123' psql -U songlyric_user -d church_songlyric -h 192.168.10.130 -c "SELECT 1" > /dev/null 2>&1; then
|
|
echo -e "${GREEN}✓ PASS${NC}"
|
|
((PASSED++))
|
|
else
|
|
echo -e "${RED}✗ FAIL${NC}"
|
|
((FAILED++))
|
|
fi
|
|
|
|
echo ""
|
|
echo "======================================"
|
|
echo "Summary:"
|
|
echo " Passed: $PASSED"
|
|
echo " Failed: $FAILED"
|
|
echo ""
|
|
|
|
if [ $FAILED -eq 0 ]; then
|
|
echo -e "${GREEN}✅ All tests passed!${NC}"
|
|
echo "🎉 System is fully operational!"
|
|
exit 0
|
|
else
|
|
echo -e "${RED}❌ Some tests failed!${NC}"
|
|
exit 1
|
|
fi
|