#!/bin/sh
# pre-push hook — запускает локальные тесты перед каждым git push
# Устанавливается через: git config core.hooksPath .githooks

ROOT="$(git rev-parse --show-toplevel)"
FAILED=0

echo ""
echo "══════════════════════════════════════════"
echo "  PRE-PUSH: запускаю локальные тесты"
echo "══════════════════════════════════════════"

# ── 1. CSS-линтер ────────────────────────────────────────────
echo ""
echo "  [1/2] CSS-линтер..."
python -X utf8 "$ROOT/tests/lint_css.py"
if [ $? -ne 0 ]; then
  echo "  ❌  CSS-линтер УПАЛ — исправь ошибки CSS перед пушем"
  FAILED=1
else
  echo "  ✅  CSS-линтер OK"
fi

# ── 2. UI Playwright ─────────────────────────────────────────
echo ""
echo "  [2/2] UI Playwright smoke..."
node "$ROOT/tests/ui_smoke.js"
if [ $? -ne 0 ]; then
  echo "  ❌  UI smoke УПАЛ — есть JS-ошибки в интерфейсе"
  FAILED=1
else
  echo "  ✅  UI smoke OK"
fi

echo ""
echo "══════════════════════════════════════════"

if [ $FAILED -ne 0 ]; then
  echo "  ❌  PUSH ЗАБЛОКИРОВАН — исправь ошибки выше"
  echo "  (чтобы пропустить: git push --no-verify)"
  echo "══════════════════════════════════════════"
  echo ""
  exit 1
fi

echo "  ✅  Все тесты прошли — пушим"
echo "  ⚠️   Не забудь прогнать API-тесты: python -X utf8 tests/smoke_api.py"
echo "══════════════════════════════════════════"
echo ""
exit 0
