#!/usr/bin/env bash
# Lance le serveur PHP de test puis toutes les suites tests/test_*.py. Prérequis et configuration : tests/README.md
cd "$(dirname "$0")/.." || exit 2
PORT="${ULUANA_TEST_PORT:-8084}"
php tests/migrate.php || exit 2
: > tests/mails.jsonl
python3 -c "import sys; sys.path.insert(0, 'tests'); import lib; lib.reset_rate_limits()"     # repart d'un état propre : les compteurs de limitation de débit d'une exécution précédente ne doivent pas fausser celle-ci
# Push : une paire de clés VAPID de test, et un « puits » (fichier) qui remplace le réseau : webpush_send() y ÉCRIT ses requêtes au lieu de les envoyer.
[ -n "$VAPID_PUBLIC" ] || eval "$(php tools/generate-vapid.php | sed 's/^/export /')"
export PUSH_TEST_SINK="${PUSH_TEST_SINK:-$PWD/tests/push.jsonl}"; : > "$PUSH_TEST_SINK"
export MAIL_TEST_SINK="${MAIL_TEST_SINK:-$PWD/tests/account_mails.jsonl}"; : > "$MAIL_TEST_SINK"          # e-mails de la suppression de compte : écrits dans ce fichier au lieu d'être envoyés (jamais en production)
php -S "127.0.0.1:$PORT" tests/router.php >/tmp/uluana-test-php.log 2>&1 &
PID=$!
trap 'kill $PID 2>/dev/null; rm -f tests/mails.jsonl tests/push.jsonl tests/account_mails.jsonl' EXIT
sleep 1
rc=0
for t in tests/test_*.py; do echo; echo "══ $t"; python3 "$t" || rc=1; done
exit $rc
