#!/bin/bash
# run-e2e.sh — Run E2E regression tests for agent outputs
# Usage: bash tests/run-e2e.sh [--security] [--cost] [--summary] [--ros] [--ai-act] [--playground] [--all]
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"

RED='\033[0;31m'
GREEN='\033[0;32m'
CYAN='\033[0;36m'
NC='\033[0m'

# Parse arguments
RUN_SECURITY=false
RUN_COST=false
RUN_SUMMARY=false
RUN_ROS=false
RUN_AI_ACT=false
RUN_PLAYGROUND=false

if [ $# -eq 0 ] || [ "${1:-}" = "--all" ]; then
  RUN_SECURITY=true
  RUN_COST=true
  RUN_SUMMARY=true
  RUN_ROS=true
  RUN_AI_ACT=true
  RUN_PLAYGROUND=true
else
  while [ $# -gt 0 ]; do
    case "$1" in
      --security)   RUN_SECURITY=true ;;
      --cost)       RUN_COST=true ;;
      --summary)    RUN_SUMMARY=true ;;
      --ros)        RUN_ROS=true ;;
      --ai-act)     RUN_AI_ACT=true ;;
      --playground) RUN_PLAYGROUND=true ;;
      *)
        echo "Usage: bash tests/run-e2e.sh [--security] [--cost] [--summary] [--ros] [--ai-act] [--playground] [--all]"
        exit 1
        ;;
    esac
    shift
  done
fi

echo -e "${CYAN}╔══════════════════════════════════════════════╗${NC}"
echo -e "${CYAN}║  MS AI Architect — E2E Regression Tests      ║${NC}"
echo -e "${CYAN}╚══════════════════════════════════════════════╝${NC}"
echo ""

FAILURES=0

if $RUN_SECURITY; then
  bash "$SCRIPT_DIR/test-security-output.sh" || FAILURES=$((FAILURES + 1))
fi

if $RUN_COST; then
  bash "$SCRIPT_DIR/test-cost-output.sh" || FAILURES=$((FAILURES + 1))
fi

if $RUN_SUMMARY; then
  bash "$SCRIPT_DIR/test-summary-output.sh" || FAILURES=$((FAILURES + 1))
fi

if $RUN_ROS; then
  bash "$SCRIPT_DIR/test-ros-output.sh" || FAILURES=$((FAILURES + 1))
fi

if $RUN_AI_ACT; then
  bash "$SCRIPT_DIR/test-ai-act-output.sh" || FAILURES=$((FAILURES + 1))
fi

if $RUN_PLAYGROUND; then
  bash "$SCRIPT_DIR/test-playground-v3.sh" || FAILURES=$((FAILURES + 1))
  bash "$SCRIPT_DIR/test-playground-parsers.sh" || FAILURES=$((FAILURES + 1))
fi

echo -e "${CYAN}══════════════════════════════════════════════${NC}"
if [ "$FAILURES" -eq 0 ]; then
  echo -e "${GREEN}  All E2E suites passed${NC}"
else
  echo -e "${RED}  $FAILURES suite(s) had failures${NC}"
fi
echo -e "${CYAN}══════════════════════════════════════════════${NC}"

exit $FAILURES
