Описание функции
Интеграционный PHPUnit @group mysql для PdoShipmentStore и миграции ms3_shipments.
Проблема, которую решает
Lifecycle в #605 покрыт InMemoryShipmentStore. Production-путь (PDO, JSON meta, table prefix, unique order_id, unique (delivery_id, provider, external_id), duplicate create) в CI не гоняется. Регрессии SQL всплывут только на живой базе.
Предлагаемое решение
Тест в tests/Integration/Mysql/ по образцу OptionSyncMysqlTest: MysqlTestConnection::requireOrSkip, создать таблицу как в 20260819150000_create_shipments.php, прогнать create/update/findByOrderId/findByExternalId и конфликт unique.
Включить в job, который уже поднимает MySQL 8.0 в .github/workflows/ci.yml при MS3_TEST_MYSQL_DSN.
Альтернативные варианты
SQLite in-memory для store. Быстрее локально, но unique NULL и JSON могут разойтись с MySQL.
Оставить только InMemory. Дешевле, SQL не проверяется.
Примеры использования
MS3_TEST_MYSQL_DSN=... MS3_TEST_MYSQL_USER=... MS3_TEST_MYSQL_PASSWORD=... \
vendor/bin/phpunit --group mysql tests/Integration/Mysql/PdoShipmentStoreMysqlTest.php
Дополнительный контекст
Описание функции
Интеграционный PHPUnit
@group mysqlдляPdoShipmentStoreи миграцииms3_shipments.Проблема, которую решает
Lifecycle в #605 покрыт
InMemoryShipmentStore. Production-путь (PDO, JSONmeta, table prefix, uniqueorder_id, unique(delivery_id, provider, external_id), duplicate create) в CI не гоняется. Регрессии SQL всплывут только на живой базе.Предлагаемое решение
Тест в
tests/Integration/Mysql/по образцуOptionSyncMysqlTest:MysqlTestConnection::requireOrSkip, создать таблицу как в20260819150000_create_shipments.php, прогнать create/update/findByOrderId/findByExternalId и конфликт unique.Включить в job, который уже поднимает MySQL 8.0 в
.github/workflows/ci.ymlприMS3_TEST_MYSQL_DSN.Альтернативные варианты
SQLite in-memory для store. Быстрее локально, но unique NULL и JSON могут разойтись с MySQL.
Оставить только InMemory. Дешевле, SQL не проверяется.
Примеры использования
Дополнительный контекст
PdoShipmentStore,InMemoryShipmentStore, wiringms3_shipment_lifecycle