Skip to content

JSON без валидных пар переходов статусов — MODE_INVALID - #788

Open
Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-786-json-transitions-invalid
Open

Ibochkarev wants to merge 1 commit into
betafrom
fix/issue-786-json-transitions-invalid

Conversation

@Ibochkarev

Copy link
Copy Markdown
Member

Описание

OrderStatusTransitionPolicy::resolve() для CSV уже возвращал MODE_INVALID, если после разбора не осталось ни одной валидной пары. JSON-ветка (и путь is_array) отдавали MODE_ON с пустыми рёбрами: белый список, в котором запрещено всё. Сообщение уводило в «переход не разрешён» вместо «настройка неверна». Теперь JSON/[]/[[0,0]] и аналоги симметричны CSV.

Тип изменений

  • Исправление бага (non-breaking change)
  • Новая функциональность (non-breaking change)
  • Breaking change (изменение, ломающее обратную совместимость)
  • Рефакторинг (без изменения функциональности)
  • Документация
  • Другое (опишите):

Связанные Issues

Closes #786

Как это было протестировано?

php -l core/components/minishop3/src/Services/Order/OrderStatusTransitionPolicy.php
# exit 0
php -l core/components/minishop3/tests/Unit/Services/Order/OrderStatusTransitionPolicyTest.php
# exit 0
cd core/components/minishop3
./vendor/bin/phpunit tests/Unit/Services/Order/OrderStatusTransitionPolicyTest.php
# PHPUnit: OK (8 tests, 23 assertions), exit 0
  • Ручное тестирование
  • Автоматические тесты (composer ci:php / composer test, npm run lint:ci, composer stan / GitHub Actions CI)
  • Тестирование на разных версиях PHP/MODX

Конфигурация тестирования:

  • MiniShop3: ветка fix/issue-786-json-transitions-invalid
  • MODX: n/a (unit)
  • PHP: локальный phpunit 11

Скриншоты (если применимо)

До После

Чеклист

  • Код соответствует стилю проекта
  • Добавлены/обновлены комментарии в сложных местах
  • Изменения не ломают существующую функциональность
  • Лексиконы добавлены на двух языках (ru/en)
  • PHPStan проходит без новых ошибок (composer stan / CI job PHPStan)
  • ESLint проходит без ошибок (npm run lint:ci для Vue)
  • Обновлён CHANGELOG.md (для значимых изменений)

Дополнительные заметки

[] трактуется как MODE_INVALID, не как MODE_OFF: выключить проверку по-прежнему можно пустой строкой настройки. См. обсуждение в #786.

Align JSON and array resolve paths with CSV: no valid pairs means
MODE_INVALID, not an empty allow-list that denies every transition.
@Ibochkarev
Ibochkarev requested a review from biz87 September 24, 2026 18:02
@Ibochkarev Ibochkarev added this to the Install & package hygiene milestone Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] JSON-значение без валидных пар включает белый список переходов, где запрещено всё

1 participant