test: add PostgreSQL integration harness

This commit is contained in:
Josh Creek
2026-09-01 08:58:28 +01:00
parent eb8eecf080
commit 5234390931
6 changed files with 181 additions and 4 deletions
+35
View File
@@ -0,0 +1,35 @@
#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "$0")/.." && pwd)"
container_name="cosmic-clash-postgres-integration"
database="cosmic_clash_test"
user="cosmic_clash_test"
password="cosmic_clash_test"
cleanup() {
docker rm -f "$container_name" >/dev/null 2>&1 || true
}
trap cleanup EXIT
cleanup
docker run --rm -d --name "$container_name" \
-e POSTGRES_DB="$database" \
-e POSTGRES_USER="$user" \
-e POSTGRES_PASSWORD="$password" \
-p 55432:5432 postgres:17-alpine >/dev/null
for attempt in $(seq 1 30); do
if docker exec "$container_name" pg_isready -U "$user" -d "$database" >/dev/null 2>&1; then
break
fi
if [ "$attempt" = 30 ]; then
echo "PostgreSQL did not become ready" >&2
exit 1
fi
sleep 1
done
cd "$repo_root/server"
COSMIC_CLASH_POSTGRES_DSN="postgres://${user}:${password}@127.0.0.1:55432/${database}?sslmode=disable" \
go test -tags integration ./store -count=1