Implement comprehensive Telegram customers storage and management functionality: Backend: - Add database migration for telecart_customers table with indexes - Create TelegramCustomer model with CRUD operations - Implement TelegramCustomerService for business logic - Add TelegramCustomerHandler for API endpoint (saveOrUpdate) - Add TelegramCustomersHandler for admin API (getCustomers with pagination, filtering, sorting) - Add SendMessageHandler for sending messages to customers via Telegram - Create custom exceptions: TelegramCustomerNotFoundException, TelegramCustomerWriteNotAllowedException - Refactor TelegramInitDataDecoder to separate decoding logic - Add TelegramHeader enum for header constants - Update SignatureValidator to use TelegramInitDataDecoder - Register new routes in bastion/routes.php and src/routes.php Frontend (Admin): - Add CustomersView.vue component with PrimeVue DataTable - Implement advanced filtering (text, date, boolean filters) - Add column visibility toggle functionality - Add global search with debounce - Implement message sending dialog with validation - Add Russian locale for PrimeVue components - Add navigation link in App.vue - Register route in router Frontend (SPA): - Add saveTelegramCustomer utility function - Integrate automatic customer data saving on app initialization - Extract user data from Telegram.WebApp.initDataUnsafe The system automatically saves/updates customer data when users access the Telegram Mini App, and provides admin interface for viewing, filtering, and messaging customers. BREAKING CHANGE: None
54 lines
2.0 KiB
Markdown
54 lines
2.0 KiB
Markdown
# Промпты для тестирования
|
|
|
|
## Создание unit теста
|
|
|
|
```
|
|
Создай unit тест для [CLASS_NAME] в tests/Unit/:
|
|
|
|
1. Используй PHPUnit
|
|
2. Покрой все публичные методы
|
|
3. Тестируй успешные сценарии
|
|
4. Тестируй обработку ошибок
|
|
5. Используй моки для зависимостей
|
|
6. Следуй структуре существующих тестов
|
|
7. Используй TestCase базовый класс проекта
|
|
```
|
|
|
|
## Создание integration теста
|
|
|
|
```
|
|
Создай integration тест для [FEATURE_NAME] в tests/Integration/:
|
|
|
|
1. Тестируй полный flow от запроса до ответа
|
|
2. Используй тестовую БД
|
|
3. Очищай данные после тестов
|
|
4. Тестируй реальные сценарии использования
|
|
5. Проверяй валидацию данных
|
|
6. Проверяй обработку ошибок
|
|
```
|
|
|
|
## Создание Vue компонент теста
|
|
|
|
```
|
|
Создай тест для Vue компонента [COMPONENT_NAME] в frontend/[admin|spa]/tests/:
|
|
|
|
1. Используй Vitest
|
|
2. Тестируй рендеринг компонента
|
|
3. Тестируй props
|
|
4. Тестируй события (emits)
|
|
5. Тестируй пользовательские взаимодействия
|
|
6. Используй моки для API вызовов
|
|
7. Следуй структуре существующих тестов
|
|
```
|
|
|
|
## Покрытие тестами
|
|
|
|
```
|
|
Проанализируй покрытие тестами для [FILE_PATH]:
|
|
1. Определи какие методы не покрыты тестами
|
|
2. Создай тесты для критичных методов
|
|
3. Убедись что тестируются граничные случаи
|
|
4. Добавь тесты для обработки ошибок
|
|
```
|
|
|