Files
db/heromodels/test.sh
2025-09-16 14:18:08 +02:00

44 lines
1.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
# Config matches examples/tests
PGHOST=${PGHOST:-localhost}
PGPORT=${PGPORT:-5432}
PGUSER=${PGUSER:-postgres}
PGPASSWORD=${PGPASSWORD:-test123}
export PGPASSWORD
echo "[test.sh] Checking Postgres at ${PGHOST}:${PGPORT} (user=${PGUSER})..."
# Require pg_isready
if ! command -v pg_isready >/dev/null 2>&1; then
echo "[test.sh] ERROR: pg_isready not found. Install PostgreSQL client tools (e.g., brew install libpq && brew link --force libpq)." >&2
exit 1
fi
# Wait for Postgres to be ready (30s timeout)
ATTEMPTS=30
until pg_isready -h "$PGHOST" -p "$PGPORT" -U "$PGUSER" >/dev/null 2>&1; do
((ATTEMPTS--)) || {
echo "[test.sh] ERROR: Postgres not ready after 30s. Ensure it's running with user=$PGUSER password=$PGPASSWORD host=$PGHOST port=$PGPORT." >&2
exit 1
}
sleep 1
echo "[test.sh] Waiting for Postgres..."
done
echo "[test.sh] Postgres is ready. Running tests..."
# Run fast OurDB test first (no Postgres dependency)
echo "[test.sh] Running OurDB test: grid4_ourdb"
cargo test -p heromodels --test grid4_ourdb
# Run Postgres-backed tests (marked ignored)
echo "[test.sh] Running Postgres test: heroledger_postgres (ignored)"
cargo test -p heromodels --test heroledger_postgres -- --ignored
echo "[test.sh] Running Postgres test: grid4_postgres (ignored)"
cargo test -p heromodels --test grid4_postgres -- --ignored
echo "[test.sh] Done."