From 5a9b111dc01c3650f22f7169d59cd18d1ffcb123 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Fri, 3 Jul 2026 19:37:46 +0300 Subject: [PATCH] =?UTF-8?q?test(meta-edit):=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0?= =?UTF-8?q?=D1=82=20=D0=BA=D0=B5=D0=B9=D1=81=D0=BE=D0=B2=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D0=B9=20JSON=20DSL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 9 кейсов задавали правки через `{operations:[{op,...}]}` — такого формата meta-edit не понимает (ключ не в add/remove/modify), поэтому операции молча пропускались (Warn «Unknown operation»), и снэпшоты фиксировали лишь исходный скомпилированный объект. Тесты фактически ничего не проверяли. Переписаны на формат из json-dsl.md: add/remove/modify → attributes/ enumValues/tabularSections/properties (shorthand-строки). Снэпшоты переснятые — теперь реально содержат эффекты (ИНН добавлен, Устаревший удалён, Телефон→НомерТелефона, CodeLength=11, ТЧ с реквизитами, Цена в ТЧ). Регресс 11/11 ps1+py. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../skills/cases/meta-edit/add-attribute.json | 4 +- .../cases/meta-edit/add-enum-values.json | 5 +- tests/skills/cases/meta-edit/add-tabpart.json | 15 +- .../cases/meta-edit/add-ts-attribute.json | 8 +- .../cases/meta-edit/combined-operations.json | 6 +- .../cases/meta-edit/guard-deny-locked.json | 2 +- .../cases/meta-edit/modify-attribute.json | 8 +- .../cases/meta-edit/modify-property.json | 5 +- .../cases/meta-edit/remove-attribute.json | 4 +- .../add-attribute/Catalogs/Контрагенты.xml | 47 +++++- .../add-enum-values/Enums/Статусы.xml | 24 +++ .../add-tabpart/Catalogs/Контрагенты.xml | 140 +++++++++++++++++- .../add-ts-attribute/Documents/Заказ.xml | 42 ++++++ .../combined-operations/Catalogs/Товары.xml | 6 +- .../modify-attribute/Catalogs/Контрагенты.xml | 13 +- .../modify-property/Catalogs/Организации.xml | 4 +- .../remove-attribute/Catalogs/Контрагенты.xml | 44 ------ 17 files changed, 283 insertions(+), 94 deletions(-) diff --git a/tests/skills/cases/meta-edit/add-attribute.json b/tests/skills/cases/meta-edit/add-attribute.json index fa445507..c42a8888 100644 --- a/tests/skills/cases/meta-edit/add-attribute.json +++ b/tests/skills/cases/meta-edit/add-attribute.json @@ -9,8 +9,6 @@ ], "params": { "objectPath": "Catalogs/Контрагенты" }, "input": { - "operations": [ - { "op": "add-attribute", "name": "ИНН", "type": "String", "length": 12 } - ] + "add": { "attributes": ["ИНН: String(12)"] } } } diff --git a/tests/skills/cases/meta-edit/add-enum-values.json b/tests/skills/cases/meta-edit/add-enum-values.json index dc5bc107..dced3505 100644 --- a/tests/skills/cases/meta-edit/add-enum-values.json +++ b/tests/skills/cases/meta-edit/add-enum-values.json @@ -9,9 +9,6 @@ ], "params": { "objectPath": "Enums/Статусы" }, "input": { - "operations": [ - { "op": "add-enumValue", "name": "ВРаботе" }, - { "op": "add-enumValue", "name": "Закрыт" } - ] + "add": { "enumValues": ["ВРаботе", "Закрыт"] } } } diff --git a/tests/skills/cases/meta-edit/add-tabpart.json b/tests/skills/cases/meta-edit/add-tabpart.json index fdb5c21c..a4cfcde0 100644 --- a/tests/skills/cases/meta-edit/add-tabpart.json +++ b/tests/skills/cases/meta-edit/add-tabpart.json @@ -9,15 +9,10 @@ ], "params": { "objectPath": "Catalogs/Контрагенты" }, "input": { - "operations": [ - { - "op": "add-ts", - "name": "КонтактнаяИнформация", - "attributes": [ - { "name": "Тип", "type": "String", "length": 50 }, - { "name": "Значение", "type": "String", "length": 250 } - ] - } - ] + "add": { + "tabularSections": [ + { "name": "КонтактнаяИнформация", "attrs": ["Тип: String(50)", "Значение: String(250)"] } + ] + } } } diff --git a/tests/skills/cases/meta-edit/add-ts-attribute.json b/tests/skills/cases/meta-edit/add-ts-attribute.json index b517a203..a81f82fc 100644 --- a/tests/skills/cases/meta-edit/add-ts-attribute.json +++ b/tests/skills/cases/meta-edit/add-ts-attribute.json @@ -13,8 +13,10 @@ ], "params": { "objectPath": "Documents/Заказ" }, "input": { - "operations": [ - { "op": "add-ts-attribute", "ts": "Товары", "name": "Цена", "type": "Number", "length": 15, "precision": 2 } - ] + "modify": { + "tabularSections": { + "Товары": { "add": ["Цена: Number(15,2)"] } + } + } } } diff --git a/tests/skills/cases/meta-edit/combined-operations.json b/tests/skills/cases/meta-edit/combined-operations.json index ccbae918..5b00618a 100644 --- a/tests/skills/cases/meta-edit/combined-operations.json +++ b/tests/skills/cases/meta-edit/combined-operations.json @@ -13,9 +13,7 @@ ], "params": { "objectPath": "Catalogs/Товары" }, "input": { - "operations": [ - { "op": "add-attribute", "name": "Производитель", "type": "String", "length": 100 }, - { "op": "remove-attribute", "name": "Устаревший" } - ] + "add": { "attributes": ["Производитель: String(100)"] }, + "remove": { "attributes": ["Устаревший"] } } } diff --git a/tests/skills/cases/meta-edit/guard-deny-locked.json b/tests/skills/cases/meta-edit/guard-deny-locked.json index 6bf3b202..834a406f 100644 --- a/tests/skills/cases/meta-edit/guard-deny-locked.json +++ b/tests/skills/cases/meta-edit/guard-deny-locked.json @@ -2,6 +2,6 @@ "name": "Guard: правка объекта на замке (f1=0) запрещена", "setup": "fixture:on-support", "params": { "objectPath": "Catalogs/Locked.xml" }, - "input": { "operations": [ { "op": "add-attribute", "name": "ТестРеквизит", "type": "String", "length": 10 } ] }, + "input": { "add": { "attributes": ["ТестРеквизит: String(10)"] } }, "expectError": "support-guard" } diff --git a/tests/skills/cases/meta-edit/modify-attribute.json b/tests/skills/cases/meta-edit/modify-attribute.json index 5ab94297..12425b8e 100644 --- a/tests/skills/cases/meta-edit/modify-attribute.json +++ b/tests/skills/cases/meta-edit/modify-attribute.json @@ -13,8 +13,10 @@ ], "params": { "objectPath": "Catalogs/Контрагенты" }, "input": { - "operations": [ - { "op": "modify-attribute", "name": "Телефон", "changes": { "name": "НомерТелефона", "type": "String", "length": 50 } } - ] + "modify": { + "attributes": { + "Телефон": { "name": "НомерТелефона", "type": "String(50)" } + } + } } } diff --git a/tests/skills/cases/meta-edit/modify-property.json b/tests/skills/cases/meta-edit/modify-property.json index a4eb01d0..6427a19b 100644 --- a/tests/skills/cases/meta-edit/modify-property.json +++ b/tests/skills/cases/meta-edit/modify-property.json @@ -9,9 +9,6 @@ ], "params": { "objectPath": "Catalogs/Организации" }, "input": { - "operations": [ - { "op": "modify-property", "name": "CodeLength", "value": "11" }, - { "op": "modify-property", "name": "DescriptionLength", "value": "150" } - ] + "modify": { "properties": { "CodeLength": 11, "DescriptionLength": 150 } } } } diff --git a/tests/skills/cases/meta-edit/remove-attribute.json b/tests/skills/cases/meta-edit/remove-attribute.json index 74576ee3..a5f83a39 100644 --- a/tests/skills/cases/meta-edit/remove-attribute.json +++ b/tests/skills/cases/meta-edit/remove-attribute.json @@ -13,8 +13,6 @@ ], "params": { "objectPath": "Catalogs/Контрагенты" }, "input": { - "operations": [ - { "op": "remove-attribute", "name": "Устаревший" } - ] + "remove": { "attributes": ["Устаревший"] } } } diff --git a/tests/skills/cases/meta-edit/snapshots/add-attribute/Catalogs/Контрагенты.xml b/tests/skills/cases/meta-edit/snapshots/add-attribute/Catalogs/Контрагенты.xml index 5bb92156..917ee4d0 100644 --- a/tests/skills/cases/meta-edit/snapshots/add-attribute/Catalogs/Контрагенты.xml +++ b/tests/skills/cases/meta-edit/snapshots/add-attribute/Catalogs/Контрагенты.xml @@ -86,6 +86,51 @@ false false - + + + + ИНН + + + ru + Инн + + + + + xs:string + + 12 + Variable + + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + ForItem + DontIndex + Use + Use + + + diff --git a/tests/skills/cases/meta-edit/snapshots/add-enum-values/Enums/Статусы.xml b/tests/skills/cases/meta-edit/snapshots/add-enum-values/Enums/Статусы.xml index fb8cb5b5..1ecfde1c 100644 --- a/tests/skills/cases/meta-edit/snapshots/add-enum-values/Enums/Статусы.xml +++ b/tests/skills/cases/meta-edit/snapshots/add-enum-values/Enums/Статусы.xml @@ -104,6 +104,30 @@ + + + ВРаботе + + + ru + Вработе + + + + + + + + Закрыт + + + ru + Закрыт + + + + + diff --git a/tests/skills/cases/meta-edit/snapshots/add-tabpart/Catalogs/Контрагенты.xml b/tests/skills/cases/meta-edit/snapshots/add-tabpart/Catalogs/Контрагенты.xml index 5bb92156..b3081fd9 100644 --- a/tests/skills/cases/meta-edit/snapshots/add-tabpart/Catalogs/Контрагенты.xml +++ b/tests/skills/cases/meta-edit/snapshots/add-tabpart/Catalogs/Контрагенты.xml @@ -86,6 +86,144 @@ false false - + + + + + UUID-013 + UUID-014 + + + UUID-015 + UUID-016 + + + + КонтактнаяИнформация + + + ru + Контактная информация + + + + + DontCheck + + + + DontCheck + false + false + Auto + + + false + + + Auto + Auto + + false + Use + false + + + + Use + + + + + + + ForItem + + + + + Тип + + + ru + Тип + + + + + xs:string + + 50 + Variable + + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Значение + + + ru + Значение + + + + + xs:string + + 250 + Variable + + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + diff --git a/tests/skills/cases/meta-edit/snapshots/add-ts-attribute/Documents/Заказ.xml b/tests/skills/cases/meta-edit/snapshots/add-ts-attribute/Documents/Заказ.xml index 17e6428c..a07d8e8c 100644 --- a/tests/skills/cases/meta-edit/snapshots/add-ts-attribute/Documents/Заказ.xml +++ b/tests/skills/cases/meta-edit/snapshots/add-ts-attribute/Documents/Заказ.xml @@ -341,6 +341,48 @@ Use + + + Цена + + + ru + Цена + + + + + xs:decimal + + 15 + 2 + Any + + + false + + + + false + + false + false + + + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + diff --git a/tests/skills/cases/meta-edit/snapshots/combined-operations/Catalogs/Товары.xml b/tests/skills/cases/meta-edit/snapshots/combined-operations/Catalogs/Товары.xml index 7fc3b418..20f6a5ed 100644 --- a/tests/skills/cases/meta-edit/snapshots/combined-operations/Catalogs/Товары.xml +++ b/tests/skills/cases/meta-edit/snapshots/combined-operations/Catalogs/Товары.xml @@ -133,18 +133,18 @@ - Устаревший + Производитель ru - Устаревший + Производитель xs:string - 10 + 100 Variable diff --git a/tests/skills/cases/meta-edit/snapshots/modify-attribute/Catalogs/Контрагенты.xml b/tests/skills/cases/meta-edit/snapshots/modify-attribute/Catalogs/Контрагенты.xml index 2a9df907..d90c4016 100644 --- a/tests/skills/cases/meta-edit/snapshots/modify-attribute/Catalogs/Контрагенты.xml +++ b/tests/skills/cases/meta-edit/snapshots/modify-attribute/Catalogs/Контрагенты.xml @@ -89,18 +89,16 @@ - Телефон - + НомерТелефона ru - Телефон + Номер телефона - - + xs:string - 20 + 50 Variable @@ -114,8 +112,7 @@ false - false - + false DontCheck Items diff --git a/tests/skills/cases/meta-edit/snapshots/modify-property/Catalogs/Организации.xml b/tests/skills/cases/meta-edit/snapshots/modify-property/Catalogs/Организации.xml index 7d9945cc..a8c9dcea 100644 --- a/tests/skills/cases/meta-edit/snapshots/modify-property/Catalogs/Организации.xml +++ b/tests/skills/cases/meta-edit/snapshots/modify-property/Catalogs/Организации.xml @@ -40,8 +40,8 @@ true ToItems - 9 - 25 + 11 + 150 String Variable WholeCatalog diff --git a/tests/skills/cases/meta-edit/snapshots/remove-attribute/Catalogs/Контрагенты.xml b/tests/skills/cases/meta-edit/snapshots/remove-attribute/Catalogs/Контрагенты.xml index c3731011..7546f19d 100644 --- a/tests/skills/cases/meta-edit/snapshots/remove-attribute/Catalogs/Контрагенты.xml +++ b/tests/skills/cases/meta-edit/snapshots/remove-attribute/Catalogs/Контрагенты.xml @@ -131,50 +131,6 @@ Use - - - Устаревший - - - ru - Устаревший - - - - - xs:string - - 50 - Variable - - - false - - - - false - - false - false - - - false - - DontCheck - Items - - - Auto - Auto - - - Auto - ForItem - DontIndex - Use - Use - -