Initial commit - Church Music Database
This commit is contained in:
98
new-site/test-system.sh
Normal file
98
new-site/test-system.sh
Normal file
@@ -0,0 +1,98 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user