mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-06-10 16:14:54 +03:00
test(web-test): расширить синтетический стенд под cell-click сценарии
Готовит почву под полноценные тесты clickElement({row,column}) на гридах
формы и virtualization-сценарии:
ТЧ Товары документа ПриходнаяНакладная — было 6 колонок, стало 18:
- Единица, Скидка, СтавкаНДС, СуммаСНДС — для ширины и mix типов
- кластер 3 boolean (ВРезерве, НаКомиссии, Подарок) подряд — для теста
что focus-click при horizontal scroll умеет пропускать checkbox edge
- Серия, НомерГТД, СтранаПроисхождения, СрокГодности — text/date
- ПризнакКонтроля (boolean) последней колонкой — отдельный edge-case
Новый enum СтавкиНДС (БезНДС, НДС0, НДС10, НДС20) — реалистичный
тип для СтавкаНДС, чтобы не переиспользовать КатегорииЦен (не по смыслу).
Документ LongDoc с 30 строками в ТЧ — для тестов reveal-loop через
scroll: true, когда строка вне DOM-окна виртуализированного грида.
Идентифицируется через Комментарий='LongDoc'.
Колонка Комментарий в форме списка ПриходнаяНакладная — чтобы можно
было искать LongDoc через filterList.
Существующее покрытие 05-table сохранено: добавление колонок
аддитивно, ранее проверенные ассерты не затронуты.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -132,6 +132,18 @@ export const steps = [
|
||||
validate: { script: 'meta-validate/scripts/meta-validate', flag: '-ObjectPath', path: 'Enums/СпособыУчёта' },
|
||||
},
|
||||
|
||||
// Перечисление СтавкиНДС — для реквизита СтавкаНДС в ТЧ Товары (18-cell-click)
|
||||
{
|
||||
name: 'meta-compile: Перечисление СтавкиНДС',
|
||||
script: 'meta-compile/scripts/meta-compile',
|
||||
input: {
|
||||
type: 'Enum', name: 'СтавкиНДС',
|
||||
values: ['БезНДС', 'НДС0', 'НДС10', 'НДС20'],
|
||||
},
|
||||
args: { '-JsonPath': '{inputFile}', '-OutputDir': '{workDir}' },
|
||||
validate: { script: 'meta-validate/scripts/meta-validate', flag: '-ObjectPath', path: 'Enums/СтавкиНДС' },
|
||||
},
|
||||
|
||||
// Документ ПриходнаяНакладная — шапка + ТЧ
|
||||
{
|
||||
name: 'meta-compile: Документ ПриходнаяНакладная',
|
||||
@@ -160,6 +172,11 @@ export const steps = [
|
||||
],
|
||||
tabularSections: [{
|
||||
name: 'Товары',
|
||||
// Существующие 6 реквизитов оставлены в начале (05-table / 06-document
|
||||
// полагаются на их позицию). Ниже добавлены ~12 новых для тестов
|
||||
// 18-cell-click: ширина для horizontal scroll, кластер из 3 boolean
|
||||
// подряд и финальный boolean в конце — для проверки что focus-click
|
||||
// умеет пропускать checkbox-ячейки при выборе edge-cell.
|
||||
attributes: [
|
||||
{ name: 'Номенклатура', type: 'CatalogRef.Номенклатура' },
|
||||
{ name: 'Количество', type: 'Number', length: 15, precision: 3 },
|
||||
@@ -168,6 +185,22 @@ export const steps = [
|
||||
{ name: 'Согласовано', type: 'Boolean' },
|
||||
// Источник — составной тип в ТЧ (для edit-dblclick через выбор типа)
|
||||
{ name: 'Источник', type: 'CatalogRef.Контрагенты + CatalogRef.Номенклатура + CatalogRef.Организации' },
|
||||
// Дополнительные колонки для ширины и для тестов 18-cell-click
|
||||
{ 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).
|
||||
{ name: 'ПризнакКонтроля', type: 'Boolean' },
|
||||
],
|
||||
}],
|
||||
},
|
||||
@@ -346,6 +379,22 @@ export const steps = [
|
||||
\t\tКонецЦикла;
|
||||
\t\tДок.Записать(РежимЗаписиДокумента.Запись);
|
||||
\tКонецЦикла;
|
||||
\t// Длинный документ — 30 строк для тестов виртуализации / reveal-loop (18-cell-click).
|
||||
\t// Комментарий "LongDoc" — селектор для тестов, чтобы найти именно этот документ.
|
||||
\tДокДлинный = Документы.ПриходнаяНакладная.СоздатьДокумент();
|
||||
\tДокДлинный.Дата = ТекущаяДата();
|
||||
\tДокДлинный.Организация = Организация;
|
||||
\tДокДлинный.Контрагент = Контрагенты[0];
|
||||
\tДокДлинный.Склад = "Основной";
|
||||
\tДокДлинный.Комментарий = "LongDoc";
|
||||
\tДля Поз = 1 По 30 Цикл
|
||||
\t\tСтрока = ДокДлинный.Товары.Добавить();
|
||||
\t\tСтрока.Номенклатура = Номенклатура[Поз % Номенклатура.Количество()];
|
||||
\t\tСтрока.Количество = Поз;
|
||||
\t\tСтрока.Цена = 50;
|
||||
\t\tСтрока.Сумма = Строка.Количество * Строка.Цена;
|
||||
\tКонецЦикла;
|
||||
\tДокДлинный.Записать(РежимЗаписиДокумента.Запись);
|
||||
КонецПроцедуры
|
||||
`,
|
||||
},
|
||||
@@ -624,6 +673,20 @@ export const steps = [
|
||||
// companion-имена дублируются в одной форме. form-compile использует
|
||||
// имя элемента, не путь, для генерации companion-имён.
|
||||
{ input: 'ИсточникТЧ', path: 'Объект.Товары.Источник', title: 'Источник' },
|
||||
// Дополнительные колонки — для тестов 18-cell-click (ширина для horizontal
|
||||
// scroll + кластер boolean + последняя колонка boolean).
|
||||
{ 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: 'Страна происхождения' },
|
||||
{ input: 'СрокГодности', path: 'Объект.Товары.СрокГодности', title: 'Срок годности' },
|
||||
{ check: 'ПризнакКонтроля', path: 'Объект.Товары.ПризнакКонтроля', title: 'Признак контроля' },
|
||||
]},
|
||||
],
|
||||
},
|
||||
@@ -651,6 +714,9 @@ export const steps = [
|
||||
{ input: 'Date', path: 'Список.Date', title: 'Дата' },
|
||||
{ input: 'Number', path: 'Список.Number', title: 'Номер' },
|
||||
{ input: 'Контрагент', path: 'Список.Контрагент', title: 'Контрагент' },
|
||||
// Комментарий — для тестов 18-cell-click: поиск длинного документа
|
||||
// через filterList по значению 'LongDoc'.
|
||||
{ input: 'Комментарий', path: 'Список.Комментарий', title: 'Комментарий' },
|
||||
{ input: 'Posted', path: 'Список.Posted', title: 'Проведён' },
|
||||
]},
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user