Files
cc-1c-skills/tests/skills/cases/meta-edit/eds-add-table-twice.json
T
Nick ShirokovandClaude Opus 5 5c79b494cd fix(meta-edit): первый ребёнок в пустом ChildObjects вставал вровень с контейнером
Get-ChildIndent брал отступ из первого пробельного узла контейнера. В контейнере с детьми это
отступ ПЕРЕД первым ребёнком — верно; в пустом (только что раскрытом) единственный пробельный
узел — отступ ЗАКРЫВАЮЩЕГО тега, то есть уровень самого контейнера. Первый добавленный реквизит,
команда или таблица получали отступ <ChildObjects>, а не на табуляцию глубже. То же во вложенном
ChildObjects табличной части.

Платформа такой файл принимает и при выгрузке нормализует, поэтому дефект косметический —
но он задевал любой объект, а сравнивать наш вывод с выгрузкой становилось неудобно.

Эталоны четырёх кейсов пересняты: git diff -w пуст, меняются только отступы. Все 23 снэпшота
meta-edit, доезжающие до платформы, приняты 8.3.24.1691.

Кейс eds-add-table-twice объявил skipPlatformVerify: он нарочно удаляет файл таблицы, оставляя
висячую регистрацию, — платформа отказывает по условию кейса, а не из-за дефекта навыка.

Радиус проверен: та же эвристика есть в cf-edit, form-edit, interface-edit и cfe-borrow (семья
get_child_indent из списка долга check-inline-drift, не сведена). У form-edit пустой контейнер
обрабатывается верно — проверено добавлением элемента в форму с <ChildItems/>; у cf-edit и
cfe-borrow ветка недостижима: в ChildObjects конфигурации всегда есть <Language>.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NBsZA5cr2WFThtgp7i5WVi
2026-09-06 20:15:26 +03:00

68 lines
1.6 KiB
JSON

{
"name": "Повторное добавление таблицы не даёт второй записи в ChildObjects",
"setup": "empty-config",
"preRun": [
{
"script": "meta-compile/scripts/meta-compile",
"input": {
"type": "ExternalDataSource",
"name": "PG",
"tables": {
"products": {
"keyFields": [
"id"
],
"fields": [
"id: Number(10,0)"
]
}
}
},
"args": {
"-JsonPath": "{inputFile}",
"-OutputDir": "{workDir}"
}
},
{
"script": "meta-edit/scripts/meta-edit",
"input": {
"add": {
"tables": {
"sales": [
"id: Number(10,0)"
]
}
}
},
"args": {
"-DefinitionFile": "{inputFile}",
"-ObjectPath": "{workDir}/ExternalDataSources/PG.xml"
}
},
{
"deletePath": "ExternalDataSources/PG/Tables/sales.xml"
}
],
"params": {
"objectPath": "ExternalDataSources/PG.xml"
},
"input": {
"add": {
"tables": {
"sales": [
"id: Number(10,0)"
]
}
}
},
"expect": {
"stdoutContains": [
"already exists"
],
"filesAbsent": [
"ExternalDataSources/PG/Tables/sales.xml"
]
},
"skipPlatformVerify": "кейс нарочно удаляет файл таблицы, оставляя висячую регистрацию: такую конфигурацию платформа не загрузит по условию кейса, а не из-за дефекта навыка"
}