From db1e78a53461d10fa3a5072ed7d7599dc8ab9002 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Fri, 1 May 2026 14:30:15 +0300 Subject: [PATCH] =?UTF-8?q?feat(web-test):=20=D0=BF=D0=BE=D0=B4=D1=87?= =?UTF-8?q?=D0=B8=D0=BD=D1=91=D0=BD=D0=BD=D1=8B=D0=B9=20=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=D0=B0=D0=BB=D0=BE=D0=B3=20=D0=9A=D0=BE=D0=BD=D1=82=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=BD=D1=8B=D0=B5=D0=9B=D0=B8=D1=86=D0=B0=20(M1=20Step?= =?UTF-8?q?=204)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Покрытие matrix #8 — getFormState.navigation (12-formstate/subordinate-nav): - Catalog.КонтактныеЛица с Owner=Catalog.Контрагенты - Реквизиты: Должность, Телефон - ФормаЭлемента (с владельцем) + ФормаСписка - Регистрация в Configuration + Subsystem.Склад + Role Платформенная верификация: 41 шаг, 23.8s. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../integration/build-webtest-config.test.mjs | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/tests/skills/integration/build-webtest-config.test.mjs b/tests/skills/integration/build-webtest-config.test.mjs index e15f490c..ae9fd35a 100644 --- a/tests/skills/integration/build-webtest-config.test.mjs +++ b/tests/skills/integration/build-webtest-config.test.mjs @@ -37,6 +37,23 @@ export const steps = [ validate: { script: 'meta-validate/scripts/meta-validate', flag: '-ObjectPath', path: 'Catalogs/Контрагенты' }, }, + // Подчинённый каталог КонтактныеЛица — для теста getFormState.navigation (subordinate-nav) + { + name: 'meta-compile: Справочник КонтактныеЛица (подчинённый Контрагентам)', + script: 'meta-compile/scripts/meta-compile', + input: { + type: 'Catalog', name: 'КонтактныеЛица', + codeLength: 9, descriptionLength: 100, + owners: ['Catalog.Контрагенты'], + attributes: [ + { name: 'Должность', type: 'String', length: 100 }, + { name: 'Телефон', type: 'String', length: 20 }, + ], + }, + args: { '-JsonPath': '{inputFile}', '-OutputDir': '{workDir}' }, + validate: { script: 'meta-validate/scripts/meta-validate', flag: '-ObjectPath', path: 'Catalogs/КонтактныеЛица' }, + }, + // Справочник Номенклатура — иерархический, все типы полей { name: 'meta-compile: Справочник Номенклатура', @@ -215,6 +232,56 @@ export const steps = [ validate: { script: 'form-validate/scripts/form-validate', flag: '-FormPath', path: 'Catalogs/Контрагенты/Forms/ФормаЭлемента/Ext/Form.xml' }, }, + // Форма элемента КонтактныеЛица + список — для подчинённого каталога + { + name: 'form-add: Форма элемента КонтактныеЛица', + script: 'form-add/scripts/form-add', + args: { '-ObjectPath': '{workDir}/Catalogs/КонтактныеЛица.xml', '-FormName': 'ФормаЭлемента' }, + }, + { + name: 'form-compile: Форма элемента КонтактныеЛица', + script: 'form-compile/scripts/form-compile', + input: { + title: 'Контактное лицо', + attributes: [ + { name: 'Объект', type: 'CatalogObject.КонтактныеЛица', main: true }, + ], + elements: [ + { input: 'Владелец', path: 'Объект.Owner', title: 'Контрагент' }, + { input: 'Наименование', path: 'Объект.Description', title: 'ФИО' }, + { input: 'Должность', path: 'Объект.Должность', title: 'Должность' }, + { input: 'Телефон', path: 'Объект.Телефон', title: 'Телефон' }, + ], + }, + args: { '-JsonPath': '{inputFile}', '-OutputPath': '{workDir}/Catalogs/КонтактныеЛица/Forms/ФормаЭлемента/Ext/Form.xml' }, + validate: { script: 'form-validate/scripts/form-validate', flag: '-FormPath', path: 'Catalogs/КонтактныеЛица/Forms/ФормаЭлемента/Ext/Form.xml' }, + }, + { + name: 'form-add: Форма списка КонтактныеЛица', + script: 'form-add/scripts/form-add', + args: { '-ObjectPath': '{workDir}/Catalogs/КонтактныеЛица.xml', '-FormName': 'ФормаСписка', '-Purpose': 'List' }, + }, + { + name: 'form-compile: Форма списка КонтактныеЛица', + script: 'form-compile/scripts/form-compile', + input: { + title: 'Контактные лица', + attributes: [ + { name: 'Список', type: 'DynamicList', main: true, + settings: { mainTable: 'Catalog.КонтактныеЛица', dynamicDataRead: true } }, + ], + elements: [ + { table: 'Список', path: 'Список', columns: [ + { input: 'Description', path: 'Список.Description', title: 'ФИО' }, + { input: 'Должность', path: 'Список.Должность', title: 'Должность' }, + { input: 'Телефон', path: 'Список.Телефон', title: 'Телефон' }, + ]}, + ], + }, + args: { '-JsonPath': '{inputFile}', '-OutputPath': '{workDir}/Catalogs/КонтактныеЛица/Forms/ФормаСписка/Ext/Form.xml' }, + validate: { script: 'form-validate/scripts/form-validate', flag: '-FormPath', path: 'Catalogs/КонтактныеЛица/Forms/ФормаСписка/Ext/Form.xml' }, + }, + // Форма списка Контрагенты — для filterList тестов. КодКПП НЕ выводим // в форму — это покрывает FieldSelector DLB ветку (filterList #5) { @@ -452,6 +519,7 @@ export const steps = [ synonym: 'Склад', content: [ 'Catalog.Контрагенты', + 'Catalog.КонтактныеЛица', 'Catalog.Номенклатура', 'Enum.ВидыНоменклатуры', 'Enum.КатегорииЦен', @@ -486,6 +554,7 @@ export const steps = [ name: 'Администратор', objects: [ 'Catalog.Контрагенты: Read View Add Update Delete', + 'Catalog.КонтактныеЛица: Read View Add Update Delete', 'Catalog.Номенклатура: Read View Add Update Delete', 'Document.ПриходнаяНакладная: Read View Add Update Delete Posting UnPosting', 'InformationRegister.КурсыВалют: Read View Add Update Delete', @@ -502,6 +571,7 @@ export const steps = [ script: 'cf-edit/scripts/cf-edit', input: [ { operation: 'add-childObject', value: 'Catalog.Контрагенты' }, + { operation: 'add-childObject', value: 'Catalog.КонтактныеЛица' }, { operation: 'add-childObject', value: 'Catalog.Номенклатура' }, { operation: 'add-childObject', value: 'Enum.ВидыНоменклатуры' }, { operation: 'add-childObject', value: 'Enum.КатегорииЦен' },