]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Правки
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 28 Jan 2026 10:30:48 +0000 (13:30 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 28 Jan 2026 10:30:48 +0000 (13:30 +0300)
erp24/api2/config/dev.api2.config.php
erp24/api2/config/env.php
erp24/tests/unit/commands/TEST_STARTS.md [new file with mode: 0644]
erp24/tests/unit/commands/ЗАПУСК_ТЕСТОВ.md [deleted file]

index 0e024d1f153ef1c9cd0252ff3fb98c52e35bafed..fd057d89bc3df70998e334f2acbeb7196121ab86 100644 (file)
@@ -46,18 +46,7 @@ return [
             'exchangeName' => 'telegram-exchange',
         ],
         // ВАЖНО для ERP24: Database credentials вынесены в переменные окружения (.env)
-        'db' => [
-            'class' => yii\db\Connection::class,
-            'dsn' => strtr('mysql:host={host};dbname={dbname}', [
-                '{host}' => getenv('DB_HOST') ?: 'localhost',
-                '{dbname}' => getenv('DB_SCHEMA') ?: 'erp24',
-            ]),
-            'username' => getenv('DB_USER') ?: '',
-            'password' => getenv('DB_PASSWORD') ?: '',
-            'charset' => 'utf8',
-            'enableSchemaCache' => true,
-            'schemaCacheDuration' => 300,
-        ],
+        'db' => require __DIR__ . '/../../config/db.php',
         'log' => [
             'traceLevel' => 3,
             'targets' => [
index 19ba42f0e7b3b7a86661403c2a770dd2280012ad..3a4c2aeca4c59463477ec804bb07cdad54ebbb36 100644 (file)
@@ -18,4 +18,7 @@ try {
 } catch (\Dotenv\Exception\InvalidPathException $e) {
     putenv("APP_ENV=development");
     error_log('[ENV ERROR] Файл .env не найден: ' . $e->getMessage());
+} catch (\Dotenv\Exception\ValidationException $e) {
+    error_log('[ENV ERROR] Ошибка валидации .env: ' . $e->getMessage());
+    throw $e; // Прекращаем выполнение при отсутствии обязательных переменных
 }
diff --git a/erp24/tests/unit/commands/TEST_STARTS.md b/erp24/tests/unit/commands/TEST_STARTS.md
new file mode 100644 (file)
index 0000000..3333182
--- /dev/null
@@ -0,0 +1,121 @@
+# Как запустить тесты для MarketplaceController и отправки уведомлений
+
+## Быстрый старт
+
+```bash
+# Из корня проекта (C:\Users\tel89\PhpstormProjects\yii-erp24)
+./vendor/bin/codecept run unit commands/MarketplaceControllerTest
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest
+```
+
+## Тесты для команды отправки отчёта
+
+### Запуск всех тестов команды
+```bash
+./vendor/bin/codecept run unit commands/MarketplaceControllerTest
+```
+
+### Конкретный тест
+```bash
+./vendor/bin/codecept run unit commands/MarketplaceControllerTest:testExitCodeForSuccessWithoutIssues
+```
+
+## Тесты для отправки уведомлений (Telegram и Email)
+
+### Запуск всех тестов уведомлений
+```bash
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest
+```
+
+### Тест с выводом конфигурации каналов и получателей
+```bash
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testOutputNotificationConfiguration -vvv
+```
+
+Этот тест выводит информацию о:
+- **Telegram Bot Token** - какой бот используется (dev/prod)
+- **Telegram Chat ID** - в какой канал/чат отправляется сообщение
+- **Email Recipients** - список получателей email
+- **Email Sender** - отправитель email (по умолчанию: noreply@bazacvetov24.ru)
+
+### Все тесты уведомлений
+```bash
+# Форматирование сообщений
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testFormatTelegramControlReportStructure
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testFormatEmailControlReportStructure
+
+# Конфигурация Telegram
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testGetTelegramBotTokenForDevEnvironment
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testGetTelegramChatId
+
+# Конфигурация Email
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testEmailSenderFromConfiguration
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testEmailRecipientsConfiguration
+```
+
+## Альтернативные способы запуска
+
+### 1. Все unit-тесты проекта
+```bash
+./vendor/bin/codecept run unit
+```
+
+### 2. С подробным выводом (debug)
+```bash
+./vendor/bin/codecept run unit commands/MarketplaceControllerTest -vvv
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest -vvv
+```
+
+### 3. С покрытием кода
+```bash
+./vendor/bin/codecept run unit commands/MarketplaceControllerTest --coverage
+./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest --coverage
+```
+
+## Что тестируется
+
+### MarketplaceController
+✅ Логика exit codes (0, 1, 2)  
+✅ Обработка всех типов проблем заказов  
+✅ Структура контроллера и методы  
+✅ Тестовый режим (--test)  
+
+### OrderControlReportService (Уведомления)
+✅ Форматирование сообщений Telegram (MarkdownV2)  
+✅ Форматирование HTML Email  
+✅ Конфигурация Telegram бота (dev/prod токены)  
+✅ Конфигурация Telegram канала/чата (chat_id)  
+✅ Конфигурация Email отправителя (from)  
+✅ Конфигурация Email получателей (to)  
+✅ Экранирование HTML и специальных символов  
+✅ Структура API запросов  
+
+## Запуск реальной команды
+
+```bash
+# Стандартный режим
+php yii marketplace/send-order-control-report
+
+# Тестовый режим
+php yii marketplace/send-order-control-report --test
+```
+
+## Конфигурация уведомлений
+
+### Telegram
+- **Bot Token Dev**: `TELEGRAM_BOT_TOKEN_DEV` или константа `TELEGRAM_BOT_DEV`
+- **Bot Token Prod**: `TELEGRAM_BOT_TOKEN_PROD` или константа `TELEGRAM_BOT_PROD`
+- **Chat ID Dev**: `TELEGRAM_ORDER_CONTROL_CHAT_ID_DEV` или из конфига
+- **Chat ID Prod**: `TELEGRAM_ORDER_CONTROL_CHAT_ID_PROD` или из конфига
+
+### Email
+- **Отправитель**: `MAIL_USERNAME` или `noreply@bazacvetov24.ru`
+- **Имя отправителя**: `ERP24 Контроль МП`
+- **Получатели**: `ORDER_CONTROL_EMAIL_RECIPIENTS` (через запятую) или из конфига
+- **Тема**: `Контроль статусов заказов МП`
+
+## Требования
+
+- PHP 7.4+
+- Codeception установлен через Composer
+- Yii2 приложение настроено
diff --git a/erp24/tests/unit/commands/ЗАПУСК_ТЕСТОВ.md b/erp24/tests/unit/commands/ЗАПУСК_ТЕСТОВ.md
deleted file mode 100644 (file)
index 3333182..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-# Как запустить тесты для MarketplaceController и отправки уведомлений
-
-## Быстрый старт
-
-```bash
-# Из корня проекта (C:\Users\tel89\PhpstormProjects\yii-erp24)
-./vendor/bin/codecept run unit commands/MarketplaceControllerTest
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest
-```
-
-## Тесты для команды отправки отчёта
-
-### Запуск всех тестов команды
-```bash
-./vendor/bin/codecept run unit commands/MarketplaceControllerTest
-```
-
-### Конкретный тест
-```bash
-./vendor/bin/codecept run unit commands/MarketplaceControllerTest:testExitCodeForSuccessWithoutIssues
-```
-
-## Тесты для отправки уведомлений (Telegram и Email)
-
-### Запуск всех тестов уведомлений
-```bash
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest
-```
-
-### Тест с выводом конфигурации каналов и получателей
-```bash
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testOutputNotificationConfiguration -vvv
-```
-
-Этот тест выводит информацию о:
-- **Telegram Bot Token** - какой бот используется (dev/prod)
-- **Telegram Chat ID** - в какой канал/чат отправляется сообщение
-- **Email Recipients** - список получателей email
-- **Email Sender** - отправитель email (по умолчанию: noreply@bazacvetov24.ru)
-
-### Все тесты уведомлений
-```bash
-# Форматирование сообщений
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testFormatTelegramControlReportStructure
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testFormatEmailControlReportStructure
-
-# Конфигурация Telegram
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testGetTelegramBotTokenForDevEnvironment
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testGetTelegramChatId
-
-# Конфигурация Email
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testEmailSenderFromConfiguration
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest:testEmailRecipientsConfiguration
-```
-
-## Альтернативные способы запуска
-
-### 1. Все unit-тесты проекта
-```bash
-./vendor/bin/codecept run unit
-```
-
-### 2. С подробным выводом (debug)
-```bash
-./vendor/bin/codecept run unit commands/MarketplaceControllerTest -vvv
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest -vvv
-```
-
-### 3. С покрытием кода
-```bash
-./vendor/bin/codecept run unit commands/MarketplaceControllerTest --coverage
-./vendor/bin/codecept run unit services/OrderControlReportServiceNotificationTest --coverage
-```
-
-## Что тестируется
-
-### MarketplaceController
-✅ Логика exit codes (0, 1, 2)  
-✅ Обработка всех типов проблем заказов  
-✅ Структура контроллера и методы  
-✅ Тестовый режим (--test)  
-
-### OrderControlReportService (Уведомления)
-✅ Форматирование сообщений Telegram (MarkdownV2)  
-✅ Форматирование HTML Email  
-✅ Конфигурация Telegram бота (dev/prod токены)  
-✅ Конфигурация Telegram канала/чата (chat_id)  
-✅ Конфигурация Email отправителя (from)  
-✅ Конфигурация Email получателей (to)  
-✅ Экранирование HTML и специальных символов  
-✅ Структура API запросов  
-
-## Запуск реальной команды
-
-```bash
-# Стандартный режим
-php yii marketplace/send-order-control-report
-
-# Тестовый режим
-php yii marketplace/send-order-control-report --test
-```
-
-## Конфигурация уведомлений
-
-### Telegram
-- **Bot Token Dev**: `TELEGRAM_BOT_TOKEN_DEV` или константа `TELEGRAM_BOT_DEV`
-- **Bot Token Prod**: `TELEGRAM_BOT_TOKEN_PROD` или константа `TELEGRAM_BOT_PROD`
-- **Chat ID Dev**: `TELEGRAM_ORDER_CONTROL_CHAT_ID_DEV` или из конфига
-- **Chat ID Prod**: `TELEGRAM_ORDER_CONTROL_CHAT_ID_PROD` или из конфига
-
-### Email
-- **Отправитель**: `MAIL_USERNAME` или `noreply@bazacvetov24.ru`
-- **Имя отправителя**: `ERP24 Контроль МП`
-- **Получатели**: `ORDER_CONTROL_EMAIL_RECIPIENTS` (через запятую) или из конфига
-- **Тема**: `Контроль статусов заказов МП`
-
-## Требования
-
-- PHP 7.4+
-- Codeception установлен через Composer
-- Yii2 приложение настроено