Files
cc-1c-skills/tests/skills/cases/meta-edit/eds-add-table-twice.json
T
Nick ShirokovandClaude Opus 5 0dac85946f fix(meta-edit): проверка «ребёнок уже есть» не видела узлов без Properties
Get-AllChildNames собирал имена только из Properties/Name и пропускал детей, которые
регистрируются голым текстом: <Table>Имя</Table>, <Form>Имя</Form>, <Template>Имя</Template>.
Из-за этого проверка на дубликат была мёртвой: после удаления файла таблицы повторное
добавление отвечало «Added: 1» и клало в ChildObjects второй такой же <Table>.

Теперь имя берётся из текста узла, если у ребёнка нет Properties. Кейс воспроизводит
исходный сценарий: добавить таблицу, удалить её файл, добавить снова — второй записи
быть не должно.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AtG4qGvZocJSWLAsbHpBCQ
2026-09-06 17:59:11 +03:00

28 lines
1.0 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"]
}
}