From 9766b8262e50fdec2702e1d09bfb88c4d2797cb4 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Thu, 28 May 2026 22:05:06 +0300 Subject: [PATCH] =?UTF-8?q?test(web-test):=20=D0=BA=D0=BB=D0=B0=D1=81?= =?UTF-8?q?=D1=82=D0=B5=D1=80=20boolean=20=D1=81=D1=82=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BC=20=D1=81=D1=80=D0=B0=D0=B7=D1=83=20=D0=BF=D0=BE=D1=81?= =?UTF-8?q?=D0=BB=D0=B5=20=D0=98=D1=81=D1=82=D0=BE=D1=87=D0=BD=D0=B8=D0=BA?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20edge-=D1=82=D0=B5=D1=81=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Чтобы при дефолтном открытии формы 3 boolean (ВРезерве, НаКомиссии, Подарок) оказывались у правого края viewport. Это даёт прицельный сценарий для теста focus-click при horizontal scroll — несколько checkbox подряд на краю заставляют focus-pick walk их и взять non-checkbox дальше внутрь. Co-Authored-By: Claude Opus 4.7 --- .../integration/build-webtest-config.test.mjs | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/tests/skills/integration/build-webtest-config.test.mjs b/tests/skills/integration/build-webtest-config.test.mjs index 9e85cabd..46c7c573 100644 --- a/tests/skills/integration/build-webtest-config.test.mjs +++ b/tests/skills/integration/build-webtest-config.test.mjs @@ -185,21 +185,22 @@ export const steps = [ { name: 'Согласовано', type: 'Boolean' }, // Источник — составной тип в ТЧ (для edit-dblclick через выбор типа) { name: 'Источник', type: 'CatalogRef.Контрагенты + CatalogRef.Номенклатура + CatalogRef.Организации' }, - // Дополнительные колонки для ширины и для тестов 18-cell-click + // Кластер из 3 boolean сразу после Источник — при дефолтном открытии + // формы они оказываются у правого края viewport. Это нужно для теста + // «focus-click при horizontal scroll пропускает checkbox-ячейки». + { name: 'ВРезерве', type: 'Boolean' }, + { name: 'НаКомиссии', type: 'Boolean' }, + { name: 'Подарок', type: 'Boolean' }, + // Дальше — text/number/enum для ширины и разнообразия типов. { name: 'Единица', type: 'String', length: 10 }, { name: 'Скидка', type: 'Number', length: 10, precision: 2 }, { name: 'СтавкаНДС', type: 'EnumRef.СтавкиНДС' }, { name: 'СуммаСНДС', type: 'Number', length: 15, precision: 2 }, - // Кластер из 3 boolean подряд — при определённом скролле они окажутся - // на правом краю viewport и фокус-клик должен их пропустить. - { name: 'ВРезерве', type: 'Boolean' }, - { name: 'НаКомиссии', type: 'Boolean' }, - { name: 'Подарок', type: 'Boolean' }, { name: 'Серия', type: 'String', length: 25 }, { name: 'НомерГТД', type: 'String', length: 25 }, { name: 'СтранаПроисхождения', type: 'String', length: 50 }, { name: 'СрокГодности', type: 'Date' }, - // Последняя колонка — тоже boolean (edge-case: краевая = checkbox). + // Последняя колонка — тоже boolean (edge-case: самая крайняя = checkbox). { name: 'ПризнакКонтроля', type: 'Boolean' }, ], }], @@ -673,15 +674,16 @@ export const steps = [ // companion-имена дублируются в одной форме. form-compile использует // имя элемента, не путь, для генерации companion-имён. { input: 'ИсточникТЧ', path: 'Объект.Товары.Источник', title: 'Источник' }, - // Дополнительные колонки — для тестов 18-cell-click (ширина для horizontal - // scroll + кластер boolean + последняя колонка boolean). + // Кластер из 3 boolean сразу после Источник — у правого края viewport + // на дефолтном открытии (для теста skip-checkbox в focus-click). + { check: 'ВРезерве', path: 'Объект.Товары.ВРезерве', title: 'В резерве' }, + { check: 'НаКомиссии', path: 'Объект.Товары.НаКомиссии', title: 'На комиссии' }, + { check: 'Подарок', path: 'Объект.Товары.Подарок', title: 'Подарок' }, + // Дальше text/number/enum — для ширины и разных типов в scroll-сценариях. { input: 'Единица', path: 'Объект.Товары.Единица', title: 'Единица' }, { input: 'Скидка', path: 'Объект.Товары.Скидка', title: 'Скидка' }, { input: 'СтавкаНДС', path: 'Объект.Товары.СтавкаНДС', title: 'Ставка НДС' }, { input: 'СуммаСНДС', path: 'Объект.Товары.СуммаСНДС', title: 'Сумма с НДС' }, - { check: 'ВРезерве', path: 'Объект.Товары.ВРезерве', title: 'В резерве' }, - { check: 'НаКомиссии', path: 'Объект.Товары.НаКомиссии', title: 'На комиссии' }, - { check: 'Подарок', path: 'Объект.Товары.Подарок', title: 'Подарок' }, { input: 'Серия', path: 'Объект.Товары.Серия', title: 'Серия' }, { input: 'НомерГТД', path: 'Объект.Товары.НомерГТД', title: 'Номер ГТД' }, { input: 'СтранаПроисхождения', path: 'Объект.Товары.СтранаПроисхождения', title: 'Страна происхождения' },