mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-29 06:29:41 +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>
38 lines
2.2 KiB
JSON
38 lines
2.2 KiB
JSON
{
|
|
"name": "Ресинк: generic строка перед вставкой — двусторонний якорь размещает автоматически",
|
|
"preRun": [
|
|
{
|
|
"script": "meta-compile/scripts/meta-compile",
|
|
"input": { "type": "CommonModule", "name": "РеанкорМод", "properties": { "Server": true } },
|
|
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
|
|
},
|
|
{
|
|
"writeFile": {
|
|
"path": "CommonModules/РеанкорМод/Ext/Module.bsl",
|
|
"content": "#Область ПрограммныйИнтерфейс\n\nПроцедура П(Сп) Экспорт\n\tДля Каждого Э Из Сп Цикл\n\t\tЭ.Обработать();\n\tКонецЦикла;\n\tСообщить(\"A\");\n\tДля Каждого Э Из Сп Цикл\n\t\tЭ.Проверить(Истина);\n\tКонецЦикла;\nКонецПроцедуры\n\n#КонецОбласти\n"
|
|
}
|
|
},
|
|
{
|
|
"script": "cfe-init/scripts/cfe-init",
|
|
"args": { "-Name": "Тест", "-OutputDir": "{workDir}/cfe", "-ConfigPath": "{workDir}" }
|
|
},
|
|
{
|
|
"script": "cfe-borrow/scripts/cfe-borrow",
|
|
"args": { "-ExtensionPath": "{workDir}/cfe", "-ConfigPath": "{workDir}", "-Object": "CommonModule.РеанкорМод" }
|
|
},
|
|
{
|
|
"writeFile": {
|
|
"path": "cfe/CommonModules/РеанкорМод/Ext/Module.bsl",
|
|
"content": "#Область ПрограммныйИнтерфейс\n&ИзменениеИКонтроль(\"П\")\nПроцедура Тест_П(Сп)\n\tДля Каждого Э Из Сп Цикл\n\t\tЭ.Обработать();\n\tКонецЦикла;\n#Вставка\n\tСообщить(\"вставка\");\n#КонецВставки\n\tСообщить(\"A\");\n\tДля Каждого Э Из Сп Цикл\n\t\tЭ.Проверить();\n\tКонецЦикла;\nКонецПроцедуры\n#КонецОбласти\n"
|
|
}
|
|
}
|
|
],
|
|
"params": {
|
|
"extensionPath": "cfe",
|
|
"modulePath": "CommonModule.РеанкорМод",
|
|
"methodName": "П",
|
|
"interceptorType": "ModificationAndControl"
|
|
},
|
|
"expect": { "stdoutContains": "правок сохранено:" }
|
|
}
|