68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/bin/bash
 | 
						|
# =====================================================================
 | 
						|
# sitemap-test.sh - Test sitemap.xml
 | 
						|
# =====================================================================
 | 
						|
# This script tests that sitemap.xml is properly generated and contains
 | 
						|
# all expected URLs
 | 
						|
# =====================================================================
 | 
						|
 | 
						|
set -e
 | 
						|
 | 
						|
echo "=== Testing sitemap.xml ==="
 | 
						|
 | 
						|
# Get the base URL from the command line or use the default
 | 
						|
if [ -z "$1" ]; then
 | 
						|
  BASE_URL="http://localhost:8080"
 | 
						|
else
 | 
						|
  BASE_URL="$1"
 | 
						|
fi
 | 
						|
 | 
						|
# Check if sitemap.xml exists
 | 
						|
if ! curl -s "$BASE_URL/sitemap.xml" > /dev/null; then
 | 
						|
  echo "❌ sitemap.xml not found at $BASE_URL/sitemap.xml"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# Download sitemap.xml
 | 
						|
echo "Downloading sitemap.xml from $BASE_URL/sitemap.xml"
 | 
						|
SITEMAP=$(curl -s "$BASE_URL/sitemap.xml")
 | 
						|
 | 
						|
# Count URLs in sitemap
 | 
						|
URL_COUNT=$(echo "$SITEMAP" | grep -c "<url>")
 | 
						|
echo "Found $URL_COUNT URLs in sitemap.xml"
 | 
						|
 | 
						|
# Check if sitemap contains at least 10 URLs
 | 
						|
if [ "$URL_COUNT" -lt 10 ]; then
 | 
						|
  echo "❌ sitemap.xml contains fewer than 10 URLs ($URL_COUNT)"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
# Check if important pages are included
 | 
						|
IMPORTANT_PAGES=(
 | 
						|
  "$BASE_URL/index.html"
 | 
						|
  "$BASE_URL/stories/index.html"
 | 
						|
  "$BASE_URL/stories/open-source-success.html"
 | 
						|
  "$BASE_URL/stories/viperwire.html"
 | 
						|
  "$BASE_URL/one-pager-tools/csv-tool.html"
 | 
						|
)
 | 
						|
 | 
						|
MISSING_PAGES=0
 | 
						|
for page in "${IMPORTANT_PAGES[@]}"; do
 | 
						|
  # Extract domain-relative path
 | 
						|
  rel_path="${page#$BASE_URL/}"
 | 
						|
  
 | 
						|
  # Check if page is in sitemap
 | 
						|
  if ! echo "$SITEMAP" | grep -q "$rel_path"; then
 | 
						|
    echo "❌ Important page missing from sitemap: $rel_path"
 | 
						|
    MISSING_PAGES=$((MISSING_PAGES + 1))
 | 
						|
  fi
 | 
						|
done
 | 
						|
 | 
						|
if [ "$MISSING_PAGES" -gt 0 ]; then
 | 
						|
  echo "❌ $MISSING_PAGES important pages missing from sitemap.xml"
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
echo "✅ sitemap.xml test passed"
 | 
						|
exit 0
 |