mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-21 10:39:42 +03:00
Кейсы клали расширение в `ext`, а cf-init создаёт в корне конфигурации платформенный `Ext/`. На регистронезависимой ФС (Windows, APFS) это один каталог: эталоны годами фиксировали слипшееся дерево — в snapshots/<case>/ext/ лежали вперемешку ClientApplicationInterface.xml конфигурации и Configuration.xml расширения, а имя каталога в коммите зависело от того, кто создал его первым (ext у одних кейсов, Ext у других при одинаковом входе). На Linux те же кейсы дали бы два каталога и другой снапшот. Переименование механическое: 64 кейса пяти навыков, 349 файлов эталонов переехали без единой правки содержимого. Заодно переписан регистр 21 пути в индексе — git с core.ignorecase не показывал, что файл конфигурации числится под ext/, а лежит в Ext/. Гард в runner.mjs: имя каталога расширения из params, совпавшее без учёта регистра с тем, что уже есть в фикстуре, валит кейс с объяснением. Проверено, что старое имя теперь не проходит. verify-snapshots.mjs чинится тем же заходом — там нашлись две дыры: - каталог расширения был захардкожен как 'ext', поэтому кейсы с другим именем МОЛЧА теряли вторую половину проверки: блок загрузки расширения обходился по existsSync и в отчёте это выглядело успехом; - setup брался только из _skill.json, и кейсы с гейтом по версии формата (218/220/221) проверялись на конфигурации 2.17 — то есть платформа не видела ровно того поведения, ради которого кейс написан. Плюс два honest-skip вместо ложных падений: режим совместимости выше платформы и формат выгрузки новее платформы (второе читаем из ответа платформы, а не дублируем лестницу версий). Проверено: регресс 827/0/8 (ps1) и 824/0/11 (py), гарды 5/5. Платформенная верификация: cfe-borrow 26/28 на 8.3.27, cfe-patch-method 22/23, cfe-init 6/7, все 14 кейсов format-221 на 8.5 — остальное осознанные пропуски. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
103 lines
3.1 KiB
JSON
103 lines
3.1 KiB
JSON
{
|
|
"name": "Связь параметров выбора на несуществующий реквизит объекта вырезается целиком",
|
|
"preRun": [
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": {
|
|
"type": "Catalog",
|
|
"name": "Склады"
|
|
},
|
|
"args": {
|
|
"-JsonPath": "{inputFile}",
|
|
"-OutputDir": "{workDir}"
|
|
}
|
|
},
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": {
|
|
"type": "Catalog",
|
|
"name": "Ячейки"
|
|
},
|
|
"args": {
|
|
"-JsonPath": "{inputFile}",
|
|
"-OutputDir": "{workDir}"
|
|
}
|
|
},
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": {
|
|
"type": "Document",
|
|
"name": "Размещение",
|
|
"attributes": [
|
|
{
|
|
"name": "Ячейка",
|
|
"type": "CatalogRef.Ячейки"
|
|
}
|
|
]
|
|
},
|
|
"args": {
|
|
"-JsonPath": "{inputFile}",
|
|
"-OutputDir": "{workDir}"
|
|
}
|
|
},
|
|
{
|
|
"script": "form-add/scripts/form-add",
|
|
"args": {
|
|
"-ObjectPath": "{workDir}/Documents/Размещение.xml",
|
|
"-FormName": "ФормаДокумента"
|
|
}
|
|
},
|
|
{
|
|
"script": "form-compile/scripts/form-compile",
|
|
"input": {
|
|
"title": "Размещение",
|
|
"elements": [
|
|
{
|
|
"input": "Ячейка",
|
|
"path": "Объект.Ячейка",
|
|
"choiceParameterLinks": [
|
|
{
|
|
"name": "Отбор.Владелец",
|
|
"dataPath": "Объект.НетТакогоРеквизита"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"attributes": [
|
|
{
|
|
"name": "Объект",
|
|
"type": "DocumentObject.Размещение",
|
|
"main": true
|
|
}
|
|
]
|
|
},
|
|
"args": {
|
|
"-JsonPath": "{inputFile}",
|
|
"-OutputPath": "{workDir}/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml"
|
|
}
|
|
},
|
|
{
|
|
"script": "cfe-init/scripts/cfe-init",
|
|
"args": {
|
|
"-Name": "Тест",
|
|
"-OutputDir": "{workDir}/cfe",
|
|
"-ConfigPath": "{workDir}"
|
|
}
|
|
}
|
|
],
|
|
"params": {
|
|
"extensionPath": "cfe",
|
|
"object": "Document.Размещение.Form.ФормаДокумента"
|
|
},
|
|
"expect": {
|
|
"fileNotContains": {
|
|
"file": "cfe/Documents/Размещение/Forms/ФормаДокумента/Ext/Form.xml",
|
|
"text": [
|
|
"<xr:Link>",
|
|
"<ChoiceParameterLinks>"
|
|
]
|
|
}
|
|
},
|
|
"skipPlatformVerify": "вход намеренно содержит путь, который платформа отвергает: в валидной конфигурации форма не может ссылаться на несуществующий реквизит объекта, а проверяется именно поведение навыка на таком пути. Расширение на выходе валидно, но verify-snapshots грузит и конфигурацию-источник"
|
|
}
|