mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-23 18:55:53 +03:00
help-add терял текст справки. Отказ смотрит только на Help.xml, а страница может пережить его (удалённый дескриптор, частичная выгрузка, справка, сделанная руками): тогда запись шла безусловно и стирала содержимое с кодом 0 и рапортом [OK]. Теперь существующая страница сохраняется, создаётся только дескриптор — та же защита, что уже стоит в template-add. Прежняя оценка «в help-add потери данных нет» была неверной: она опиралась на чтение кода, а не на замер. Код языка: регулярка пропускала имена устройств Windows. При -Lang nul py-порт молча писал <Page>nul</Page> и пустой каталог с кодом 0 (страница уходила в NUL), а PS падал исключением — то есть порты ещё и расходились. Якоря \A…\z вместо ^…$: последние в обоих языках допускают перевод строки в конце. Проверка вынесена в Test-LangCode / is_valid_lang и внесена в реестр check-inline-drift: inline-блок гард не видел, а копий у него две. Плюс мелочи оттуда же: мёртвый дизъюнкт в $pageExists убран; полумигрированное дерево (дескриптор есть, старый Ext/Template.html остался рядом) теперь получает предупреждение, а не молчание; существование страницы в py сверяется без учёта регистра — иначе на Linux -Lang RU писал бы вторую страницу мимо дескриптора. Четыре кейса на каждый сценарий. Существующие эталоны не сдвинулись. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
42 lines
1014 B
JSON
42 lines
1014 B
JSON
{
|
|
"name": "Страница справки без дескриптора: содержимое не затирается",
|
|
"preRun": [
|
|
{
|
|
"script": "epf-init/scripts/init",
|
|
"args": {
|
|
"-Name": "МояОбработка",
|
|
"-SrcDir": "{workDir}"
|
|
}
|
|
},
|
|
{
|
|
"script": "help-add/scripts/add-help",
|
|
"args": {
|
|
"-ObjectName": "МояОбработка",
|
|
"-SrcDir": "{workDir}"
|
|
}
|
|
},
|
|
{
|
|
"deletePath": "МояОбработка/Ext/Help.xml"
|
|
},
|
|
{
|
|
"writeFile": {
|
|
"path": "МояОбработка/Ext/Help/ru.html",
|
|
"content": "ЖИВОЙ_ТЕКСТ_СПРАВКИ"
|
|
}
|
|
}
|
|
],
|
|
"params": {
|
|
"objectName": "МояОбработка"
|
|
},
|
|
"expect": {
|
|
"stdoutContains": [
|
|
"[WARN]",
|
|
"содержимое сохранено"
|
|
],
|
|
"fileContains": {
|
|
"file": "МояОбработка/Ext/Help/ru.html",
|
|
"text": "ЖИВОЙ_ТЕКСТ_СПРАВКИ"
|
|
}
|
|
}
|
|
}
|