resume/tests/integration/includes-test.sh

109 lines
3.6 KiB
Bash
Executable File

#!/bin/bash
# =====================================================================
# includes-test.sh - Test the includes functionality
# =====================================================================
# This script checks if the includes system is working properly
# =====================================================================
# Check if base URL is provided
if [ -z "$1" ]; then
BASE_URL="http://localhost:8080"
else
BASE_URL="$1"
fi
echo "=== Testing Includes Functionality ==="
echo "Using base URL: $BASE_URL"
# Array to track failures
FAILURES=0
# Test if includes.js exists and loads properly
echo "Checking if includes.js exists and loads properly..."
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/includes.js")
if [ "$RESPONSE" -eq 200 ]; then
echo "✅ includes.js loads successfully (HTTP $RESPONSE)"
# Check includes.js content
INCLUDES_JS=$(curl -s "$BASE_URL/includes.js")
if echo "$INCLUDES_JS" | grep -q "includeHTML"; then
echo "✅ includes.js contains includeHTML function"
else
echo "❌ includes.js doesn't contain includeHTML function"
FAILURES=$((FAILURES+1))
fi
if echo "$INCLUDES_JS" | grep -q "DOMContentLoaded"; then
echo "✅ includes.js contains DOMContentLoaded event listener"
else
echo "❌ includes.js doesn't contain DOMContentLoaded event listener"
FAILURES=$((FAILURES+1))
fi
else
echo "❌ includes.js failed to load (HTTP $RESPONSE)"
FAILURES=$((FAILURES+1))
fi
# Check if the includes/header.html file exists
echo "Checking includes/header.html file..."
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/includes/header.html")
if [ "$RESPONSE" -eq 200 ] || [ "$RESPONSE" -eq 403 ]; then
echo "✅ includes/header.html file exists (HTTP $RESPONSE)"
else
echo "❌ includes/header.html file doesn't exist (HTTP $RESPONSE)"
FAILURES=$((FAILURES+1))
fi
# Check if pages with includes load correctly
echo "Checking pages that use includes..."
INCLUDE_PAGES=(
"template-with-includes.html"
"stories/story-with-includes.html"
"one-pager-tools/tool-with-includes.html"
)
for page in "${INCLUDE_PAGES[@]}"; do
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/$page")
if [ "$RESPONSE" -eq 200 ]; then
echo "$page loads successfully (HTTP $RESPONSE)"
# Check if the page has include placeholders
CONTENT=$(curl -s "$BASE_URL/$page")
if echo "$CONTENT" | grep -q "id=\"header-include\""; then
echo "$page has header include placeholder"
else
echo "$page doesn't have header include placeholder"
FAILURES=$((FAILURES+1))
fi
if echo "$CONTENT" | grep -q "id=\"footer-include\""; then
echo "$page has footer include placeholder"
else
echo "$page doesn't have footer include placeholder"
FAILURES=$((FAILURES+1))
fi
# Check if includes.js is included in the page
if echo "$CONTENT" | grep -q "includes.js"; then
echo "$page includes the includes.js script"
else
echo "$page doesn't include the includes.js script"
FAILURES=$((FAILURES+1))
fi
else
echo "$page failed to load (HTTP $RESPONSE)"
FAILURES=$((FAILURES+1))
fi
echo "---"
done
# Check if any failures occurred
if [ "$FAILURES" -eq 0 ]; then
echo "=== All Includes Tests Passed ==="
exit 0
else
echo "=== Includes Tests Failed: $FAILURES failures ==="
exit 1
fi