Spaces:
Runtime error
Runtime error
| # Boots backend + frontend, runs the real-browser E2E, captures screenshots. | |
| ROOT=/home/user/affiliate-launch-kit | |
| echo "▶ ensuring chromium system deps" | |
| dpkg -s libnspr4 >/dev/null 2>&1 || \ | |
| sudo DEBIAN_FRONTEND=noninteractive apt-get install -y -qq \ | |
| libnss3 libnspr4 libatk1.0-0 libatk-bridge2.0-0 libcups2 libdrm2 \ | |
| libxkbcommon0 libxcomposite1 libxdamage1 libxfixes3 libxrandr2 libgbm1 \ | |
| libpango-1.0-0 libcairo2 libasound2t64 libatspi2.0-0 >/dev/null 2>&1 | |
| cd $ROOT/e2e | |
| [ -d node_modules ] || npm install --no-audit --no-fund --silent | |
| [ -d /home/user/.cache/ms-playwright/chromium_headless_shell-1228 ] || \ | |
| npx playwright install chromium | |
| # ensure backend built | |
| cd $ROOT/backend | |
| [ -d node_modules ] || npm install --no-audit --no-fund --silent | |
| [ -f dist/main.js ] || npm run build --silent | |
| pkill -f "node dist/main.js" 2>/dev/null | |
| pkill -f vite 2>/dev/null | |
| sleep 1 | |
| node dist/main.js > /tmp/backend.log 2>&1 & | |
| BPID=$! | |
| echo "▶ waiting for BACKEND..." | |
| BK=0 | |
| for i in $(seq 1 60); do | |
| code=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:3000/api/campaigns 2>/dev/null) | |
| echo "$code" | grep -qE "^(401|403|200)$" && { echo " backend ready (${i}s, $code)"; BK=1; break; } | |
| kill -0 $BPID 2>/dev/null || { echo " backend DIED"; tail -20 /tmp/backend.log; break; } | |
| sleep 1 | |
| done | |
| [ "$BK" != "1" ] && { echo "BACKEND FAILED"; tail -30 /tmp/backend.log; kill $BPID 2>/dev/null; exit 2; } | |
| echo "▶ waiting for VITE..." | |
| cd $ROOT/frontend | |
| [ -d node_modules ] || npm install --no-audit --no-fund --silent | |
| npm run dev > /tmp/frontend.log 2>&1 & | |
| FPID=$! | |
| VITE_OK=0 | |
| for i in $(seq 1 40); do | |
| code=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5173/ 2>/dev/null) | |
| [ "$code" = "200" ] && { echo " vite ready (${i}s)"; VITE_OK=1; break; } | |
| sleep 1 | |
| done | |
| [ "$VITE_OK" != "1" ] && { echo "VITE FAILED"; cat /tmp/frontend.log; kill $BPID $FPID 2>/dev/null; exit 2; } | |
| # Settle for NestJS module init | |
| sleep 2 | |
| echo "▶ running real-browser E2E" | |
| cd $ROOT/e2e | |
| node browser-e2e.js | |
| E2E_EXIT=$? | |
| kill $BPID $FPID 2>/dev/null | |
| echo "▶ screenshots saved:" | |
| ls -1 screenshots/*.png 2>/dev/null | sed 's/^/ /' | |
| exit $E2E_EXIT | |