feat(e2e): enable SuperSync tests in e2e:docker:all script

Modify e2e:docker:all to run all 360+ E2E tests including @supersync tests.

- Start all required services (app, webdav, db, supersync)
- Add wait-for-supersync.sh for SuperSync health check
- Execute tests in two phases:
  - Phase 1: Non-supersync tests (default workers)
  - Phase 2: SuperSync tests (3 workers to avoid server overload)
- Both phases run independently; exit code reflects first failure
- Previously skipped 131 @supersync tests now included

Resolves complete E2E test coverage for all sync providers.
This commit is contained in:
Johannes Millan 2026-01-21 19:04:57 +01:00
parent 73c1848ba9
commit 3a9d35149d
2 changed files with 21 additions and 1 deletions

View file

@ -65,7 +65,7 @@
"e2e:supersync:down": "docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml down supersync",
"e2e:docker": "docker compose -f docker-compose.e2e.yaml up -d app && ./scripts/wait-for-app.sh && E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e; docker compose -f docker-compose.e2e.yaml down",
"e2e:docker:webdav": "docker compose -f docker-compose.e2e.yaml up -d app webdav && ./scripts/wait-for-app.sh && ./scripts/wait-for-webdav.sh && E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e; docker compose -f docker-compose.e2e.yaml down",
"e2e:docker:all": "docker compose -f docker-compose.e2e.yaml up -d app webdav && ./scripts/wait-for-app.sh && ./scripts/wait-for-webdav.sh && E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e; docker compose -f docker-compose.e2e.yaml down",
"e2e:docker:all": "docker compose -f docker-compose.e2e.yaml -f docker-compose.yaml -f docker-compose.supersync.yaml up -d app webdav db supersync && ./scripts/wait-for-app.sh && ./scripts/wait-for-webdav.sh && ./scripts/wait-for-supersync.sh && E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e -- --grep-invert @supersync; PHASE1_EXIT=$?; E2E_BASE_URL=http://localhost:${APP_PORT:-4242} npm run e2e -- --grep @supersync --workers=3; PHASE2_EXIT=$?; docker compose -f docker-compose.e2e.yaml -f docker-compose.yaml -f docker-compose.supersync.yaml down; if [ $PHASE1_EXIT -ne 0 ]; then exit $PHASE1_EXIT; fi; exit $PHASE2_EXIT",
"electron": "NODE_ENV=PROD electron .",
"electron:build": "tsc -p electron/tsconfig.electron.json",
"electron:watch": "tsc -p electron/tsconfig.electron.json --watch",

20
scripts/wait-for-supersync.sh Executable file
View file

@ -0,0 +1,20 @@
#!/bin/bash
# Wait for SuperSync server to be ready at http://localhost:1901
# Retries for up to 90 seconds (accounts for PostgreSQL + SuperSync startup)
echo "Waiting for SuperSync server on http://localhost:1901..."
MAX_WAIT=90
elapsed=0
until curl -s http://localhost:1901/health > /dev/null 2>&1; do
if [ $elapsed -ge $MAX_WAIT ]; then
echo "Timeout: SuperSync server did not start within ${MAX_WAIT}s"
echo "--- SuperSync logs ---"
docker compose -f docker-compose.yaml -f docker-compose.supersync.yaml logs supersync
exit 1
fi
sleep 1
elapsed=$((elapsed + 1))
done
echo "SuperSync server is ready!"