#!/usr/bin/env bash
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TMP="$(mktemp -d)"
PORT=$((22000 + RANDOM % 1000))
PID=""
cleanup() {
  if [[ -n "$PID" ]]; then
    kill "$PID" >/dev/null 2>&1 || true
    wait "$PID" 2>/dev/null || true
  fi
  rm -rf "$TMP"
}
trap cleanup EXIT

python3 "$ROOT/tests/fake_smtp_server.py" "$PORT" "$TMP/message.eml" &
PID=$!
for _ in {1..30}; do
  if (echo >/dev/tcp/127.0.0.1/"$PORT") >/dev/null 2>&1; then
    wait "$PID" 2>/dev/null || true
    python3 "$ROOT/tests/fake_smtp_server.py" "$PORT" "$TMP/message.eml" &
    PID=$!
    break
  fi
  sleep 0.1
done
php "$ROOT/tests/notification_smtp_integration.php" "$PORT"
wait "$PID"
PID=""
grep -Fq 'Message-ID: <smtp-integration@notify.yokesen.com>' "$TMP/message.eml"
grep -Fq '..Dot-stuffed line' "$TMP/message.eml"
echo "verify_notification_smtp: PASS"

