#!/usr/bin/env bash
# ============================================================
# run-e2e.sh
#
# L2 MCP E2E 全流程编排：
#   1. 确保测试 DB 容器运行
#   2. 重建 schema + 运行种子（含 test.* 账号和组织关系）
#   3. 以 daemon 模式启动测试栈
#   4. 打印 MCP 测试说明，等待用户运行测试
#   5. 测试完成后停止测试栈
#
# 用法：
#   bash testing/scripts/run-e2e.sh
# ============================================================
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
# shellcheck disable=SC1091
source "${ROOT_DIR}/testing/scripts/lib-test-db.sh"

setup_test_db_env

E2E_BACKEND_PORT="${E2E_BACKEND_PORT:-3011}"
E2E_FRONTEND_PORT="${E2E_FRONTEND_PORT:-3010}"

echo "════════════════════════════════════════"
echo "  L2 MCP E2E 测试环境准备"
echo "════════════════════════════════════════"
echo ""

# ── Step 1: 确保测试 DB 运行 ────────────────────────────────
echo "📦 Step 1: 确保测试数据库容器运行..."
ensure_test_db
echo ""

# ── Step 2: 重建 schema + 种子 ─────────────────────────────
echo "🌱 Step 2: 重建 schema 并初始化种子数据（含测试账号）..."
reset_test_db_schema
echo ""

# ── Step 3: 启动测试栈 ─────────────────────────────────────
echo "🚀 Step 3: 启动测试栈（后台模式）..."
bash "${ROOT_DIR}/testing/scripts/start-e2e-stack.sh" --daemon
echo ""

# ── Step 4: 打印测试账号和说明 ─────────────────────────────
echo "════════════════════════════════════════"
echo "  ✅ E2E 测试环境就绪"
echo "════════════════════════════════════════"
echo ""
echo "  前端地址 : http://localhost:${E2E_FRONTEND_PORT}"
echo "  后端地址 : http://localhost:${E2E_BACKEND_PORT}/api/v1"
echo ""
echo "  测试账号（密码均为 Test1234!）："
echo "  ┌──────────────┬──────────────────────┬──────────────────────┐"
echo "  │ 账号         │ 角色                 │ 组织                 │"
echo "  ├──────────────┼──────────────────────┼──────────────────────┤"
echo "  │ itadmin      │ Administrator        │ 全部                 │"
echo "  │ test.dev1    │ Employee             │ 车辆研发销售         │"
echo "  │ test.lead1   │ Leader               │ 车辆研发销售         │"
echo "  │ test.mgr1    │ DepartmentManager    │ 车辆研发销售         │"
echo "  │ test.robot1  │ Employee             │ 机器人研发销售       │"
echo "  └──────────────┴──────────────────────┴──────────────────────┘"
echo ""
echo "  MCP Playwright 指向前端: http://localhost:${E2E_FRONTEND_PORT}"
echo ""
echo "  运行完测试后执行以下命令停止测试栈："
echo "  bash testing/scripts/stop-e2e-stack.sh"
echo ""
echo "  日志："
echo "  tail -f /tmp/e2e-backend.log"
echo "  tail -f /tmp/e2e-frontend.log"
echo ""
