#!/bin/bash
# run-tests.sh — запуск UI-тестов через ssh_exec.sh
# Использование: bash tasks/ui-testing/scripts/run-tests.sh <test-file> [project-name]
#
# Пример:
#   bash tasks/ui-testing/scripts/run-tests.sh enduro-phase3 enduro-trails

set -e

SKILL=~/.openclaw/skills/installer/scripts
TEST_NAME=${1:-"template"}
PROJECT=${2:-"ui-testing"}
WORKSPACE=/home/node/.openclaw/workspace
TESTS_DIR=$WORKSPACE/tasks/ui-testing/tests
SCREENSHOTS_DIR=$WORKSPACE/tasks/$PROJECT/screenshots
REPORTS_DIR=$WORKSPACE/tasks/$PROJECT/reports
REMOTE_DIR=/home/slin/ui-tests

echo "==> Запуск UI-тестов: $TEST_NAME (проект: $PROJECT)"
echo "==> Скриншоты: $SCREENSHOTS_DIR"

mkdir -p "$SCREENSHOTS_DIR" "$REPORTS_DIR"

# 1. Копируем тест на сервер
echo "==> Копируем тест на mva154..."
TEST_CONTENT=$(cat "$TESTS_DIR/${TEST_NAME}.js")
$SKILL/ssh_exec.sh --host mva154 --cmd "mkdir -p $REMOTE_DIR/tests $REMOTE_DIR/screenshots && cat > $REMOTE_DIR/tests/${TEST_NAME}.js << 'ENDOFTEST'
$TEST_CONTENT
ENDOFTEST" --timeout 30

# 2. Запускаем тест
echo "==> Запускаем тест на сервере..."
CHROME_BIN=$($SKILL/ssh_exec.sh --host mva154 --cmd "which chromium-browser 2>/dev/null || which chromium 2>/dev/null || echo /usr/bin/chromium-browser" --timeout 10 | tail -1)

$SKILL/ssh_exec.sh --host mva154 --cmd "
  cd $REMOTE_DIR && \
  CHROME_BIN=$CHROME_BIN \
  SCREENSHOTS_DIR=$REMOTE_DIR/screenshots \
  RESULTS_FILE=$REMOTE_DIR/results.json \
  node tests/${TEST_NAME}.js 2>&1
" --timeout 180

# 3. Копируем скриншоты обратно
echo "==> Копируем скриншоты..."
SCREENSHOTS=$($SKILL/ssh_exec.sh --host mva154 --cmd "ls $REMOTE_DIR/screenshots/*.png 2>/dev/null || echo ''" --timeout 10)

if [ -n "$SCREENSHOTS" ]; then
  for f in $SCREENSHOTS; do
    FNAME=$(basename "$f")
    $SKILL/ssh_exec.sh --host mva154 --cmd "cat $f | base64" --timeout 30 | base64 -d > "$SCREENSHOTS_DIR/$FNAME"
    echo "   📸 $FNAME"
  done
  echo "==> Скриншоты сохранены: $SCREENSHOTS_DIR"
else
  echo "==> Скриншоты не найдены"
fi

# 4. Копируем результаты
RESULTS=$($SKILL/ssh_exec.sh --host mva154 --cmd "cat $REMOTE_DIR/results.json 2>/dev/null || echo '{}'" --timeout 10)
echo "$RESULTS" > "$REPORTS_DIR/${TEST_NAME}-results.json"
echo "==> Результаты: $REPORTS_DIR/${TEST_NAME}-results.json"

echo ""
echo "✅ Готово. Скриншоты в: $SCREENSHOTS_DIR"
