Files
Mini-ERP-app/core-service/PRE-COMMIT-HOOK.md
Andrey Epifantsev b19f6df20c feat: добавлен pre-commit хук для автоматического тестирования
- Создан pre-commit хук в .git/hooks/pre-commit
- Хук автоматически запускает все тесты перед коммитом
- Показывает статистику прохождения тестов
- Блокирует коммит если тесты не прошли
- Добавлена документация PRE-COMMIT-HOOK.md

Хук тестирует:
- Auth тесты (5 тестов)
- API тесты (5 тестов)
- Repository тесты (10 тестов)

Использование:
- Обычный коммит: git commit -m 'message'
- Пропуск тестов: git commit --no-verify -m 'message'
2025-08-27 15:55:52 +04:00

3.7 KiB
Raw Blame History

Pre-commit Hook для тестирования

📋 Описание

Pre-commit хук автоматически запускает все тесты перед каждым коммитом, чтобы гарантировать качество кода.

🚀 Как это работает

При выполнении git commit хук:

  1. Автоматически запускает все тесты в директории examples/
  2. Показывает статистику прохождения тестов
  3. Разрешает коммит только если все тесты прошли успешно
  4. Блокирует коммит если тесты не прошли

📊 Что тестируется

Auth тесты (5 тестов)

  • JWT token generation/validation
  • Password hashing/verification
  • Error handling

API тесты (5 тестов)

  • HTTP handlers (Register, Login)
  • Middleware аутентификации
  • Валидация запросов

Repository тесты (10 тестов)

  • CRUD операции для всех сущностей
  • SQL запросы с правильными параметрами
  • JSONB field handling

🔧 Использование

Обычный коммит

git add .
git commit -m "feat: новая функциональность"

Хук автоматически запустит тесты и покажет результат.

Пропуск тестов (в экстренных случаях)

git commit --no-verify -m "hotfix: критическое исправление"

Ручной запуск тестов

# Все тесты
go test ./examples/... -v

# Отдельные модули
go test ./examples/auth_test.go -v
go test ./examples/api_test.go -v
go test ./examples/repository_test.go -v

📁 Расположение хука

Хук находится в: .git/hooks/pre-commit

⚙️ Настройка

Установка хука

# Хук уже установлен автоматически
# Для переустановки:
chmod +x .git/hooks/pre-commit

Отключение хука

mv .git/hooks/pre-commit .git/hooks/pre-commit.disabled

Включение хука

mv .git/hooks/pre-commit.disabled .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

🎯 Преимущества

  1. Автоматическое тестирование - не нужно помнить о запуске тестов
  2. Качество кода - коммиты с ошибками не попадают в репозиторий
  3. Статистика - видно покрытие тестами
  4. Быстрая обратная связь - ошибки обнаруживаются сразу

🚨 Что делать если тесты не прошли

  1. Исправить ошибки в коде
  2. Запустить тесты вручную для диагностики:
    go test ./examples/... -v
    
  3. Повторить коммит после исправления

📝 Пример вывода

🧪 Запуск тестов перед коммитом...
📋 Запуск всех тестов...
=== RUN   TestAuthHandler_Register
--- PASS: TestAuthHandler_Register (0.00s)
...
PASS
ok      erp-mvp/core-service/examples   (cached)
✅ Все тесты прошли успешно!

📊 Статистика тестов:
Auth тесты: 8/5 ✅
API тесты: 6/5 ✅
Repository тесты: 11/10 ✅

🎉 Коммит разрешен!
[feature/core-service-api-structure 508b57b] feat: новая функциональность