mirror of
https://github.com/wasrusgen/zov-tech.git
synced 2026-06-03 17:44:48 +00:00
Блокирует push при JS-ошибках в интерфейсе или CSS-нарушениях. API-тесты в хук не включены — зависят от VPS/Drive, запускать вручную. Активируется через: git config core.hooksPath .githooks Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
51 lines
2.1 KiB
Bash
51 lines
2.1 KiB
Bash
#!/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
|