6 Commits

Author SHA1 Message Date
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
508b57bf2d test: проверка pre-commit хука 2025-08-27 15:55:11 +04:00
c9d1a75f56 test: проверка pre-commit хука из корневой директории 2025-08-27 15:54:27 +04:00
e65863a782 test: финальная проверка pre-commit хука 2025-08-27 15:53:51 +04:00
e490e49c93 test: проверка исправленного pre-commit хука 2025-08-27 15:52:53 +04:00
79c3eed25b test: проверка pre-commit хука 2025-08-27 15:52:21 +04:00
2 changed files with 123 additions and 0 deletions

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: новая функциональность
```

5
core-service/README.md Normal file
View File

@@ -0,0 +1,5 @@
# Test comment
# Another test comment
# Final test comment
# Test from root
# Test hook