Compare commits
6 Commits
6f93a1f9bc
...
b19f6df20c
| Author | SHA1 | Date | |
|---|---|---|---|
| b19f6df20c | |||
| 508b57bf2d | |||
| c9d1a75f56 | |||
| e65863a782 | |||
| e490e49c93 | |||
| 79c3eed25b |
118
core-service/PRE-COMMIT-HOOK.md
Normal file
118
core-service/PRE-COMMIT-HOOK.md
Normal 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: новая функциональность
|
||||||
|
```
|
||||||
5
core-service/README.md
Normal file
5
core-service/README.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Test comment
|
||||||
|
# Another test comment
|
||||||
|
# Final test comment
|
||||||
|
# Test from root
|
||||||
|
# Test hook
|
||||||
Reference in New Issue
Block a user