feature/core-service-api-structure #3

Merged
aep merged 17 commits from feature/core-service-api-structure into master 2025-08-27 15:11:10 +03:00
21 changed files with 3006 additions and 120 deletions
Showing only changes of commit b19f6df20c - Show all commits

View File

@@ -0,0 +1,118 @@
# 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
## 🔧 Использование
### Обычный коммит
```bash
git add .
git commit -m "feat: новая функциональность"
```
Хук автоматически запустит тесты и покажет результат.
### Пропуск тестов (в экстренных случаях)
```bash
git commit --no-verify -m "hotfix: критическое исправление"
```
### Ручной запуск тестов
```bash
# Все тесты
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`
## ⚙️ Настройка
### Установка хука
```bash
# Хук уже установлен автоматически
# Для переустановки:
chmod +x .git/hooks/pre-commit
```
### Отключение хука
```bash
mv .git/hooks/pre-commit .git/hooks/pre-commit.disabled
```
### Включение хука
```bash
mv .git/hooks/pre-commit.disabled .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
```
## 🎯 Преимущества
1. **Автоматическое тестирование** - не нужно помнить о запуске тестов
2. **Качество кода** - коммиты с ошибками не попадают в репозиторий
3. **Статистика** - видно покрытие тестами
4. **Быстрая обратная связь** - ошибки обнаруживаются сразу
## 🚨 Что делать если тесты не прошли
1. **Исправить ошибки** в коде
2. **Запустить тесты вручную** для диагностики:
```bash
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: новая функциональность
```