Миграция с 7.24 на 7.25
Изменения в сборке
- Обновление версии Selenide c 6.6.0 на 6.14.0
- Произведен полный переход с JUnit 4 на JUnit 5.
- Механизм чтения из Groovy файлов был полностью удален.
Изменения в XML API
- Прекращена поддержка схемы
object-3.0
. - Прекращена поддержка схемы
application-1.0
. - Прекращена поддержка deprecated атрибута
name
в<form-param>
. Вместо него необходимо использовать атрибутid
. - Удален атрибут
hide-overflow
поля<code>
. - Прекращена поддержка компонента
<pills>
. - Упразднен атрибут
table-size
(размер строк таблицы), регулировать размер строк нео бходимо с помощью стилей. - Упразднен атрибут
checkboxes
(наличие чекбоксов в первом столбце таблицы). Этот функционал можно реализовать с помощьюselection="checkbox"
- Упразднен атрибут
check-on-select
(срабатывание (включение/выключение) чекбокса при клике по строке) у таблицы. Теперь при клике по строке с установленнымselection="checkbox"
будет, либо срабатывать действие (если оно задано), либо выбираться чекбокс строки. - Упразднен атрибут
hide-on-blur
(Скрытие ячейки при наведении на строку) у колонок таблицы. Функционал больше не поддерживается. - Был добавлен функционал прокидывания тулбаров на открываемую страницу. В связи с чем были внесены следующие изменения.
- Кнопки с действиями открытия страниц теперь нельзя скрывать по точке доступа
<object-access>
. Вместо этого используйте<page-access>
или<url-access>
. - Упразднены атрибуты
confirm
,confirm-text
,submit-label
операций объектов. - Упразднены атрибуты
submit-operation-id
,submit-message-on-success
,submit-message-on-fail
,submit-model
,submit-label
с сохранением обратной совместимости.
Вместо submit-operation-id
рекомендуется использовать кнопку с invoke
действием.
Атрибуты submit-message-*
заменяются их аналогами из invoke
.
Пример, как работало в версии 7.24 и ниже
<show-modal page-id="personCard"
submit-operation-id="update" submit-label="Сохранить"
submit-message-on-success="Данные сохранены" submit-message-on-fail="Данные не удалось сохранить"/>
Пример, как работает в версии 7.25
<show-modal page-id="personCard">
<toolbars>
<toolbar>
<button label="Сохранить">
<invoke operation-id="update" message-on-success="Данные сохранены" message-on-fail="Данные не удалось сохранить"/>
</button>
</toolbar>
</toolbars>
</show-modal>
- Упразднены атрибуты
close-after-submit
,redirect-target-after-submit
,refresh-after-submit
с сохранением обратной совместимости.
Вместо этих атрибутов используйте более гибкий механизм мультидействий.
Вариант 1: submit + refresh + close
Пример как работало в версии 7.24 и ниже
<show-modal page-id="personCard" submit-operation-id="update" close-after-submit="true" refresh-after-submit="true"/>
Пример как работает в версии 7.25
<show-modal page-id="personCard">
<toolbars>
<toolbar>
<button label="Сохранить">
<invoke operation-id="update"/>
<refresh datasource="parentDs"/>
<close/>
</button>
</toolbar>
</toolbars>
<datasources>
<parent-datasource id="parentDs"/>
</datasources>
</show-modal>
Вариант 2: submit + redirect
Пример как работало в версии 7.24 и ниже
<show-modal page-id="personCard" submit-operation-id="update" redirect-target-after-submit="/main"/>
Пример как работает в версии 7.25
<show-modal page-id="personCard">
<toolbars>
<toolbar>
<button label="Сохранить">
<invoke operation-id="update"/>
<a href="/main" target="application"/>
</button>
</toolbar>
</toolbars>
</show-modal>
- Упразднены атрибуты копирования
submit-action-type
,copy-datasource
,copy-model
,copy-field-id
,target-datasource
,target-model
,target-field-id
,copy-mode
,target-page
с сохранением обратной совместимости.
Используйте действие <copy>
.
Пример как работало в версии 7.24 и ниже
<show-modal page-id="personCard" submit-action-type="copy" copy-datasource="modal_ds" target-datasource="ds1"/>
Пример как работает в версии 7.25
<show-modal page-id="personCard">
<toolbars>
<toolbar>
<button label="Копировать">
<copy copy-datasource="modal_ds" target-datasource="ds1"/>
</button>
</toolbar>
</toolbars>
<datasources>
<parent-datasource id="ds1"/>
</datasources>
</show-modal>
Изменения функциональности
- Изменилась логика формирования идентификатора виджета в
<simple-page>
. Раньше, если он не был указан в xml, то генерировалось значение равноеmain
. Теперь идентификатор формируется также, как и у<page>
: 'w' + индекс.
note
Если где-то в route использовался main
, то необходимо проверить не является ли он сгенерированным идентификатором виджета.
Изменения в API автотестов
- Все методы проверки значений были расширены необязательным атрибутом Duration (таймаут проверки). В связи с чем методы, использующие в качестве аргумента varargs тип, теперь используют массив.
Пример: shouldHaveOptions(String... values)
-> shouldHaveOptions(String[] values, Duration... duration)