Spaces:
Paused
Paused
File size: 2,069 Bytes
dd7a3f0 094c13f dd7a3f0 0b7bef2 dd7a3f0 094c13f dd7a3f0 2f5b07b dd7a3f0 2f5b07b dd7a3f0 c1dd29e 094c13f dd7a3f0 094c13f 2f5b07b dd7a3f0 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | #!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
IMAGE_NAME="openposterdb-test"
CONTAINER_NAME="openposterdb-test"
if command -v podman &>/dev/null; then
CTR=podman
elif command -v docker &>/dev/null; then
CTR=docker
else
echo "Error: neither podman nor docker found" >&2
exit 1
fi
echo "=== Backend tests ==="
(cd api && cargo test)
echo ""
echo "=== Frontend unit tests ==="
(cd web && npx vitest run)
echo ""
echo "=== Container setup ==="
cleanup() {
echo "=== Tearing down ==="
$CTR rm -f "$CONTAINER_NAME" 2>/dev/null || true
$CTR rmi -f "$IMAGE_NAME" 2>/dev/null || true
}
trap cleanup EXIT INT TERM
echo "Building container image..."
$CTR build -t "$IMAGE_NAME" --build-arg CARGO_FEATURES=test-support -f Containerfile .
ENV_ARGS=()
if [ -f api/.env ]; then
echo "Loading API keys from api/.env"
while IFS='=' read -r key value; do
[[ -z "$key" || "$key" == \#* ]] && continue
ENV_ARGS+=(-e "$key=$value")
done < api/.env
fi
echo "Starting container..."
$CTR rm -f "$CONTAINER_NAME" 2>/dev/null || true
$CTR run -d --name "$CONTAINER_NAME" \
-p 3333:3000 \
--tmpfs /tmp/openposterdb-e2e \
"${ENV_ARGS[@]}" \
-e JWT_SECRET=abababababababababababababababababababababababababababababababab \
-e LISTEN_ADDR=0.0.0.0:3000 \
-e COOKIE_SECURE=false \
-e CACHE_DIR=/tmp/openposterdb-e2e \
-e DB_DIR=/tmp/openposterdb-e2e \
-e FREE_KEY_ENABLED=true \
"$IMAGE_NAME"
echo "Waiting for backend..."
for i in $(seq 1 60); do
if curl -sf http://127.0.0.1:3333/api/auth/status > /dev/null 2>&1; then
echo "Backend ready"
break
fi
if [ "$i" -eq 60 ]; then
echo "Backend did not start within 60 seconds"
$CTR logs "$CONTAINER_NAME"
exit 1
fi
sleep 1
done
echo ""
echo "=== Visual report ==="
scripts/visual-report.sh
echo ""
echo "=== E2E tests ==="
(cd web && npx playwright test --workers=1 --project=setup --project=settings --project=chromium --project=live)
echo ""
echo "All tests passed."
|