2026-04-17 14:15:27 +08:00
|
|
|
#!/bin/bash
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
echo "=== Step 1: Stop existing container ==="
|
2026-04-24 18:02:21 +08:00
|
|
|
docker stop SnapOtter 2>/dev/null || true
|
|
|
|
|
docker rm SnapOtter 2>/dev/null || true
|
2026-04-17 14:15:27 +08:00
|
|
|
|
|
|
|
|
echo "=== Step 2: Start test container ==="
|
|
|
|
|
docker run -d \
|
2026-04-24 18:02:21 +08:00
|
|
|
--name SnapOtter-test \
|
2026-04-17 14:15:27 +08:00
|
|
|
-p 1349:1349 \
|
|
|
|
|
-e AUTH_ENABLED=true \
|
|
|
|
|
-e DEFAULT_USERNAME=admin \
|
|
|
|
|
-e DEFAULT_PASSWORD=admin \
|
|
|
|
|
-e LOG_LEVEL=debug \
|
|
|
|
|
-e RATE_LIMIT_PER_MIN=50000 \
|
|
|
|
|
-e SKIP_MUST_CHANGE_PASSWORD=true \
|
2026-04-24 18:02:21 +08:00
|
|
|
snapotter:test-fixes
|
2026-04-17 14:15:27 +08:00
|
|
|
|
|
|
|
|
echo "=== Step 3: Wait for container to be healthy ==="
|
|
|
|
|
echo "Waiting for health check..."
|
|
|
|
|
for i in $(seq 1 60); do
|
2026-04-24 18:02:21 +08:00
|
|
|
STATUS=$(docker inspect --format='{{.State.Health.Status}}' SnapOtter-test 2>/dev/null || echo "starting")
|
2026-04-17 14:15:27 +08:00
|
|
|
if [ "$STATUS" = "healthy" ]; then
|
|
|
|
|
echo "Container is healthy after ${i}0 seconds"
|
|
|
|
|
break
|
|
|
|
|
fi
|
|
|
|
|
if [ "$STATUS" = "unhealthy" ]; then
|
|
|
|
|
echo "Container is unhealthy!"
|
2026-04-24 18:02:21 +08:00
|
|
|
docker logs SnapOtter-test --tail 50
|
2026-04-17 14:15:27 +08:00
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
echo " Status: $STATUS (${i}0s elapsed)"
|
|
|
|
|
sleep 10
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
echo "=== Step 4: Run Playwright tests ==="
|
|
|
|
|
npx playwright test --config playwright.docker.config.ts --reporter=list 2>&1
|
|
|
|
|
|
|
|
|
|
TEST_EXIT=$?
|
|
|
|
|
|
|
|
|
|
echo "=== Step 5: Check Docker logs for errors ==="
|
|
|
|
|
echo "--- Container logs (last 50 lines) ---"
|
2026-04-24 18:02:21 +08:00
|
|
|
docker logs SnapOtter-test --tail 50
|
2026-04-17 14:15:27 +08:00
|
|
|
|
|
|
|
|
echo "=== Step 6: Cleanup ==="
|
2026-04-24 18:02:21 +08:00
|
|
|
docker stop SnapOtter-test
|
|
|
|
|
docker rm SnapOtter-test
|
2026-04-17 14:15:27 +08:00
|
|
|
|
|
|
|
|
# Restart original container
|
2026-04-24 18:02:21 +08:00
|
|
|
echo "=== Restarting original SnapOtter container ==="
|
|
|
|
|
docker start SnapOtter 2>/dev/null || true
|
2026-04-17 14:15:27 +08:00
|
|
|
|
|
|
|
|
exit $TEST_EXIT
|