Spaces:
Paused
Paused
Download scripts/test.sh from stremio-db/a: direct link, hf CLI and curl.
- Browser
- Download file 2.07 kB
-
https://huggingface.co/spaces/stremio-db/a/resolve/main/scripts/test.sh
- Command line
-
hf download hf://spaces/stremio-db/a/scripts/test.sh
-
curl -L -o test.sh https://huggingface.co/spaces/stremio-db/a/resolve/main/scripts/test.sh
2.07 kB
| 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." | |