Files
wild-cloud/experimental/daemon/tests/test-installation.sh
2025-06-26 08:28:52 -07:00

146 lines
4.0 KiB
Bash
Executable File

#!/bin/bash
set -e
echo "🚀 Testing wild-cloud-central installation..."
# Verify the binary was installed
echo "✅ Checking binary installation..."
if [ -f "/usr/bin/wild-cloud-central" ]; then
echo " Binary installed at /usr/bin/wild-cloud-central"
else
echo "❌ Binary not found at /usr/bin/wild-cloud-central"
exit 1
fi
# Verify config was installed
echo "✅ Checking configuration..."
if [ -f "/etc/wild-cloud-central/config.yaml" ]; then
echo " Config installed at /etc/wild-cloud-central/config.yaml"
else
echo "❌ Config not found at /etc/wild-cloud-central/config.yaml"
exit 1
fi
# Verify systemd service file was installed
echo "✅ Checking systemd service..."
if [ -f "/etc/systemd/system/wild-cloud-central.service" ]; then
echo " Service file installed at /etc/systemd/system/wild-cloud-central.service"
else
echo "❌ Service file not found"
exit 1
fi
# Verify nginx config was installed
echo "✅ Checking nginx configuration..."
if [ -f "/etc/nginx/sites-available/wild-central" ]; then
echo " Nginx config installed at /etc/nginx/sites-available/wild-central"
# Enable the site for testing
ln -sf /etc/nginx/sites-available/wild-central /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
else
echo "❌ Nginx config not found"
exit 1
fi
# Verify web assets were installed
echo "✅ Checking web assets..."
if [ -f "/var/www/html/wild-central/index.html" ]; then
echo " Web assets installed at /var/www/html/wild-central/"
else
echo "❌ Web assets not found"
exit 1
fi
# Start nginx (simulating systemd)
echo "🔧 Starting nginx..."
nginx &
NGINX_PID=$!
# Start dnsmasq (simulating systemd)
echo "🔧 Starting dnsmasq..."
dnsmasq --keep-in-foreground --log-facility=- &
DNSMASQ_PID=$!
# Start wild-cloud-central service (simulating systemd)
echo "🔧 Starting wild-cloud-central service..."
/usr/bin/wild-cloud-central &
SERVICE_PID=$!
# Wait for service to start
echo "⏳ Waiting for services to start..."
sleep 5
# Test health endpoint
echo "🩺 Testing health endpoint..."
if curl -s http://localhost:5055/api/v1/health | grep -q "healthy"; then
echo " ✅ Health check passed"
else
echo " ❌ Health check failed"
exit 1
fi
# Test configuration endpoint
echo "🔧 Testing configuration endpoint..."
CONFIG_RESPONSE=$(curl -s http://localhost:5055/api/v1/config)
if echo "$CONFIG_RESPONSE" | grep -q "Server"; then
echo " ✅ Configuration endpoint working"
else
echo " ❌ Configuration endpoint failed"
echo " Response: $CONFIG_RESPONSE"
echo " Checking if service is still running..."
if kill -0 $SERVICE_PID 2>/dev/null; then
echo " Service is running"
else
echo " Service has died"
fi
exit 1
fi
# Test dnsmasq config generation
echo "🔧 Testing dnsmasq config generation..."
if curl -s http://localhost:5055/api/v1/dnsmasq/config | grep -q "interface"; then
echo " ✅ Dnsmasq config generation working"
else
echo " ❌ Dnsmasq config generation failed"
exit 1
fi
# Test web interface accessibility (through nginx)
echo "🌐 Testing web interface..."
if curl -s http://localhost:80/ | grep -q "Wild Cloud Central"; then
echo " ✅ Web interface accessible through nginx"
else
echo " ❌ Web interface not accessible"
exit 1
fi
echo ""
echo "🎉 All installation tests passed!"
echo ""
echo "Services running:"
echo " - wild-cloud-central: http://localhost:5055"
echo " - Web interface: http://localhost:80"
echo " - API health: http://localhost:5055/api/v1/health"
echo ""
echo "Installation simulation successful! 🚀"
# Keep services running for manual testing
echo "Services will continue running. Press Ctrl+C to stop."
# Function to handle shutdown
shutdown() {
echo ""
echo "🛑 Shutting down services..."
kill $SERVICE_PID 2>/dev/null || true
kill $DNSMASQ_PID 2>/dev/null || true
kill $NGINX_PID 2>/dev/null || true
echo "Shutdown complete."
exit 0
}
# Set up signal handlers
trap shutdown SIGTERM SIGINT
# Wait for signals
wait