51 lines
1.4 KiB
Bash
Executable File
51 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Unit test for Mailhog component
|
|
# TDD flow: test first to ensure failure prior to implementation
|
|
|
|
set -e
|
|
|
|
# Load environment settings
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
ENV_FILE="${SCRIPT_DIR}/TSYSDevStack-SupportStack-Demo-Settings"
|
|
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "Error: Environment settings file not found at $ENV_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
source "$ENV_FILE"
|
|
|
|
echo "Testing Mailhog availability and functionality..."
|
|
|
|
# Ensure Mailhog container is running
|
|
if ! docker ps | grep -q "$MAILHOG_NAME"; then
|
|
echo "❌ Mailhog container is not running"
|
|
exit 1
|
|
fi
|
|
|
|
# Allow service time to respond
|
|
sleep 3
|
|
|
|
# Verify Mailhog UI is reachable
|
|
if curl -f -s "http://${BIND_ADDRESS}:${MAILHOG_UI_PORT}/" > /dev/null 2>&1; then
|
|
echo "✅ Mailhog UI is accessible at http://${BIND_ADDRESS}:${MAILHOG_UI_PORT}"
|
|
else
|
|
echo "❌ Mailhog UI is not accessible at http://${BIND_ADDRESS}:${MAILHOG_UI_PORT}"
|
|
exit 1
|
|
fi
|
|
|
|
# Optional SMTP port check (basic TCP connect)
|
|
if command -v nc >/dev/null 2>&1; then
|
|
if timeout 3 nc -z "${BIND_ADDRESS}" "${MAILHOG_SMTP_PORT}" >/dev/null 2>&1; then
|
|
echo "✅ Mailhog SMTP port ${MAILHOG_SMTP_PORT} is reachable"
|
|
else
|
|
echo "⚠️ Mailhog SMTP port ${MAILHOG_SMTP_PORT} not reachable (informational)"
|
|
fi
|
|
else
|
|
echo "⚠️ nc command not available; skipping SMTP connectivity check"
|
|
fi
|
|
|
|
echo "✅ Mailhog component test passed"
|
|
exit 0
|