test(support-guard): committed deny-тесты на 13 навыков-мутаторов + фикс help-add

Регрессионная защита гарда: по одному expectError-кейсу guard-deny на
каждый из 13 размноженных мутаторов (раньше committed-тесты были только
у 3 пилотных). Ловит случайное удаление/поломку guard-вызова в будущем.

Фикстуры on-support (рукотворный bin: корень/объект f1=0, плюс элемент
f1=0 для edit-existing навыков — форма 4444, макет 5555, подсистема 6666).
Структура под конвенцию каждого навбыка: owner/root для add/compile/edit
конфигурации; плоский Locked/Ext для help-add (EPF-стиль).

Заодно исправлен пред-существующий баг help-add Detect-FormatVersion
(v1.5→v1.6, оба порта): Substring(0, byteLength) падал на кириллическом
Configuration.xml (байт>символов). Теперь Substring по длине строки;
фикстура help-add кириллическая — регрессия фикса покрыта тестом.

Все 13 guard-кейсов зелёные на PowerShell и Python; deny через exit≠0 +
stderr "support-guard". Существующие кейсы не затронуты.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-06-20 15:45:50 +03:00
co-authored by Claude Opus 4.8
parent b17dd5d04c
commit acbd6be46c
72 changed files with 653 additions and 3 deletions
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" version="2.17"><Configuration uuid="11111111-1111-1111-1111-111111111111"><Properties><Name>ТестоваяКонфигурацияСКириллицей</Name></Properties><ChildObjects/></Configuration></MetaDataObject>
@@ -0,0 +1 @@
{6,0,1,aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa,0,bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb,"1.0","Vend","Cfg",2,0,0,11111111-1111-1111-1111-111111111111,0,0,22222222-2222-2222-2222-222222222222,22222222-2222-2222-2222-222222222222}
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" version="2.17"><Catalog uuid="22222222-2222-2222-2222-222222222222"><Properties><Name>Locked</Name></Properties><ChildObjects/></Catalog></MetaDataObject>
@@ -0,0 +1,6 @@
{
"name": "Guard: добавление справки к объекту на замке (f1=0) запрещено",
"setup": "fixture:on-support",
"objectName": "Locked",
"expectError": "support-guard"
}