resume/tests/integration/theme-test.sh

89 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
# =====================================================================
# theme-test.sh - Test the theme functionality
# =====================================================================
# This script checks if the theme 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 Theme Functionality ==="
echo "Using base URL: $BASE_URL"
# Array to track failures
FAILURES=0
# Test if theme.js exists and loads properly
echo "Checking if theme.js exists and loads properly..."
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/theme.js")
if [ "$RESPONSE" -eq 200 ]; then
echo "✅ theme.js loads successfully (HTTP $RESPONSE)"
# Check theme.js content
THEME_JS=$(curl -s "$BASE_URL/theme.js")
if echo "$THEME_JS" | grep -q "DOMContentLoaded"; then
echo "✅ theme.js contains DOMContentLoaded event listener"
else
echo "❌ theme.js doesn't contain DOMContentLoaded event listener"
FAILURES=$((FAILURES+1))
fi
if echo "$THEME_JS" | grep -q "themeToggle"; then
echo "✅ theme.js contains themeToggle functionality"
else
echo "❌ theme.js doesn't contain themeToggle functionality"
FAILURES=$((FAILURES+1))
fi
if echo "$THEME_JS" | grep -q "localStorage"; then
echo "✅ theme.js uses localStorage for theme persistence"
else
echo "❌ theme.js doesn't use localStorage for theme persistence"
FAILURES=$((FAILURES+1))
fi
else
echo "❌ theme.js failed to load (HTTP $RESPONSE)"
FAILURES=$((FAILURES+1))
fi
# Check if CSS has theme-related styles
echo "Checking if styles.css has theme-related styles..."
RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" "$BASE_URL/styles.css")
if [ "$RESPONSE" -eq 200 ]; then
echo "✅ styles.css loads successfully (HTTP $RESPONSE)"
# Check styles.css content for theme-related styles
STYLES_CSS=$(curl -s "$BASE_URL/styles.css")
if echo "$STYLES_CSS" | grep -q "data-theme"; then
echo "✅ styles.css contains data-theme attribute selectors"
else
echo "❌ styles.css doesn't contain data-theme attribute selectors"
FAILURES=$((FAILURES+1))
fi
# Check for dark mode styles
if echo "$STYLES_CSS" | grep -q "dark"; then
echo "✅ styles.css contains dark mode styles"
else
echo "❌ styles.css doesn't contain dark mode styles"
FAILURES=$((FAILURES+1))
fi
else
echo "❌ styles.css failed to load (HTTP $RESPONSE)"
FAILURES=$((FAILURES+1))
fi
# Check if any failures occurred
if [ "$FAILURES" -eq 0 ]; then
echo "=== All Theme Tests Passed ==="
exit 0
else
echo "=== Theme Tests Failed: $FAILURES failures ==="
exit 1
fi