diff --git a/packages/adapter-surrealdb/test/test.sh b/packages/adapter-surrealdb/test/test.sh index 9383e45789..9221724edc 100755 --- a/packages/adapter-surrealdb/test/test.sh +++ b/packages/adapter-surrealdb/test/test.sh @@ -1,26 +1,23 @@ #!/usr/bin/env bash +set -euo pipefail CONTAINER_NAME=authjs-surrealdb-test -# Get the latest 2.x container since 3.x-alpha is not yet fully supported by js library -TAG=$(curl -s "https://registry.hub.docker.com/v2/repositories/surrealdb/surrealdb/tags?page_size=100" \ -| jq -r '.results[].name' \ -| grep -E '^v2\.[0-9]+(\.[0-9]+)?$' \ -| sort -V \ -| tail -n1) - -# Start db +# The surrealdb JS client 1.3.x pairs with a v2.x server; the v2 tag tracks the latest v2 release. docker run -d --rm \ -p 8000:8000 \ --name ${CONTAINER_NAME} \ - surrealdb/surrealdb:${TAG} start --log debug --user test --pass test memory + surrealdb/surrealdb:v2 start --log debug --user test --pass test memory + +trap 'docker stop ${CONTAINER_NAME} >/dev/null 2>&1 || true' EXIT -echo "Waiting 5s for db to start..." -sleep 5 +echo "Waiting for SurrealDB to become ready..." +for _ in $(seq 1 30); do + if curl -sf http://127.0.0.1:8000/health >/dev/null; then + echo "SurrealDB is ready." + break + fi + sleep 1 +done -# Always stop container, but exit with 1 when tests are failing -if vitest run -c ../utils/vitest.config.ts; then - docker stop ${CONTAINER_NAME} -else - docker stop ${CONTAINER_NAME} && exit 1 -fi +vitest run -c ../utils/vitest.config.ts