#!/usr/bin/env sh set -eu ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) cleanup() { kill "${PROXY_PID:-}" "${PLUGIN_PID:-}" "${CORE_PID:-}" 2>/dev/null || true } trap cleanup EXIT INT TERM MOCK_CORE_PORT=18080 node "$ROOT/test/mock-core.mjs" >/tmp/subscription-admin-mock-core.log 2>&1 & CORE_PID=$! ( export CORE_BASE_URL=http://127.0.0.1:18080 export PLUGIN_HOST=127.0.0.1 export PLUGIN_PORT=18082 export PLUGIN_PUBLIC_BASE_PATH=/extensions/qiu.subscription-admin export PLUGIN_COOKIE_PATH=/extensions/qiu.subscription-admin/ export PLUGIN_COOKIE_SECURE=false cd "$ROOT" go run . ) >/tmp/subscription-admin-plugin.log 2>&1 & PLUGIN_PID=$! PLUGIN_TARGET_PORT=18082 MOCK_PROXY_PORT=18081 node "$ROOT/test/mock-proxy.mjs" >/tmp/subscription-admin-mock-proxy.log 2>&1 & PROXY_PID=$! for attempt in $(seq 1 30); do if curl -fsS http://127.0.0.1:18081/extensions/qiu.subscription-admin/healthz >/dev/null 2>&1; then break fi sleep 0.2 done PLUGIN_BROWSER_ORIGIN=http://127.0.0.1:18081 PLUGIN_SCREENSHOT_DIR="$ROOT/.screenshots/subscription-admin" node "$ROOT/test/browser-check.mjs"