#!/usr/bin/env bash # Shared helpers for e2e-test.sh set -euo pipefail e2e_log() { echo "==> [e2e] $*"; } e2e_pass() { echo " ✓ $*"; } e2e_wait_health() { local base="$1" tries="${2:-60}" for _ in $(seq 1 "$tries"); do if curl -fsS "${base}/api/v1/health" >/dev/null 2>&1; then return 0 fi sleep 0.25 done echo "server did not become healthy at ${base}" >&2 return 1 } e2e_wait_port() { local host="$1" port="$2" tries="${3:-40}" for _ in $(seq 1 "$tries"); do if (echo >/dev/tcp/"${host}"/"${port}") 2>/dev/null; then return 0 fi sleep 0.25 done echo "port ${host}:${port} not open" >&2 return 1 } e2e_json_field() { local json="$1" field="$2" echo "${json}" | sed -n "s/.*\"${field}\":\"\([^\"]*\)\".*/\1/p" | head -1 } e2e_curl_auth() { curl -fsS -u "${E2E_USER}:${E2E_PASS}" "$@" } e2e_curl_fleet() { curl -fsS -H "Authorization: Bearer ${FLEET_SECRET}" "$@" } e2e_write_config() { local path="$1" port="$2" clearance="$3" xmr_port="$4" rvn_port="$5" mkdir -p "$(dirname "${path}")" "/tmp/forge-mesh-e2e" cat > "${path}" </dev/null; then kill "${SERVER_PID}" 2>/dev/null || true wait "${SERVER_PID}" 2>/dev/null || true fi SERVER_PID="" }