experiments in a post-browser web
at main 66 lines 1.8 kB view raw
1#!/bin/bash 2# E2E test server helper 3# Usage: 4# yarn test:e2e:server start — start server (reads DATA_DIR, PORT env vars) 5# yarn test:e2e:server stop — stop server on $PORT 6# yarn test:e2e:server status — check if server is running 7# yarn test:e2e:server log — tail the server log 8 9set -e 10 11SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" 12REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" 13 14DATA_DIR="${DATA_DIR:-/tmp/e2e-peek-mobile-pWx75j}" 15PORT="${PORT:-28400}" 16LOG_FILE="$DATA_DIR/server.log" 17PID_FILE="$DATA_DIR/server.pid" 18 19case "${1:-status}" in 20 start) 21 # Kill existing server on this port if any 22 EXISTING="$(lsof -ti :"$PORT" 2>/dev/null || true)" 23 if [ -n "$EXISTING" ]; then 24 kill "$EXISTING" 2>/dev/null || true 25 sleep 1 26 fi 27 mkdir -p "$DATA_DIR" 28 DATA_DIR="$DATA_DIR" PORT="$PORT" node "$REPO_ROOT/backend/server/index.js" > "$LOG_FILE" 2>&1 & 29 echo "$!" > "$PID_FILE" 30 sleep 2 31 if curl -sf "http://localhost:$PORT/" > /dev/null 2>&1; then 32 echo "Server started on port $PORT (PID: $(cat "$PID_FILE"))" 33 else 34 echo "Server failed to start — check $LOG_FILE" 35 exit 1 36 fi 37 ;; 38 stop) 39 EXISTING="$(lsof -ti :"$PORT" 2>/dev/null || true)" 40 if [ -n "$EXISTING" ]; then 41 kill "$EXISTING" 2>/dev/null || true 42 echo "Stopped server (PID: $EXISTING)" 43 else 44 echo "No server running on port $PORT" 45 fi 46 ;; 47 status) 48 if curl -sf "http://localhost:$PORT/" 2>/dev/null; then 49 echo "" 50 echo "Server running on port $PORT" 51 else 52 echo "No server running on port $PORT" 53 fi 54 ;; 55 log) 56 if [ -f "$LOG_FILE" ]; then 57 cat "$LOG_FILE" 58 else 59 echo "No log file at $LOG_FILE" 60 fi 61 ;; 62 *) 63 echo "Usage: $0 {start|stop|status|log}" 64 exit 1 65 ;; 66esac