Crossweft / Обновления / v0.2.10
ОБНОВЛЕНИЕ · v0.2.10 ·

Каждая кнопка доходит до своего обработчика

Новая проверка `ui_actions` ведёт каждую кнопку через таблицы обработчиков до кода и до объявленного маршрута API; `crossweft actions` печатает эту цепочку.

Одна новая проверка: кнопки и другие элементы интерфейса стали швом, который Crossweft умеет проверять.

Зачем. Кнопка называет своё действие строкой, написанной руками: data-action, имя колбэка, команда меню. Код, который это действие выполняет, находится через другие такие же строки: таблицу, реестр, правило по префиксу. Переименуйте действие только с одной стороны — и всё по-прежнему собирается. Кнопка остаётся на странице и ничего не делает, или в коде остаётся обработчик, который ни одна кнопка больше не вызывает.

ui_actions. Запись ui_actions в карте говорит, где лежат кнопки и какие таблицы их разбирают. Crossweft ведёт каждую кнопку через эти таблицы до обработчика, а с "routes": true — дальше, до маршрута API, который объявлен на связи, так что проверки маршрутов следят, чтобы сервер его обслуживал. Проблем четыре:

  • ui:<id>:dead — ни один обработчик не принимает кнопку;
  • ui:<id>:unrouted — цепочка не доходит до объявленного маршрута;
  • ui:<id>:orphan — обработчик, к которому больше не ведёт ни одна кнопка;
  • ui:<id>:conflict — один ключ привязан дважды к разным значениям.

Кнопку, которая и должна заканчиваться без маршрута, можно разрешить через allow с причиной.

crossweft actions. Печатает цепочку каждой кнопки: какая таблица её приняла, в каком файле, и маршрут в конце. --json даёт то же для скрипта.

Статическая проверка и проверка нажатием. Проверка доказывает связи в исходниках. Она не может доказать, что обработчик не падает и что кнопку не закрыл другой элемент. В демо-репозитории теперь есть страница администратора и smoke/click_smoke.py: он читает crossweft actions --json, нажимает каждую кнопку из карты в Chromium и ждёт запрос, который ожидает карта. Его самопроверка обязана покраснеть на обработчике, который падает.

После обновления запустите crossweft agents ещё раз: навык агента теперь объясняет проблемы ui: и crossweft actions.

Источник: v0.2.10 · CHANGELOG.md

← v0.2.9