fix(tests): check-uuid-invariant — ошибку прогона не называть нарушением инварианта

Счётчик был один: несобранное окружение давало «1 НАРУШЕНИЙ инварианта uuid» и
отправляло искать баг там, где его нет. Счётчики разведены, exit по-прежнему 1
в обоих случаях — непрогнанный порт это не «зелено».

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-08-13 16:03:26 +03:00
co-authored by Claude Opus 5
parent f38fcce692
commit 48f9bc1d52
+9 -6
View File
@@ -60,7 +60,8 @@ function attrUuid(xmlPath, name) {
return m ? m[1] : null;
}
let failures = 0;
let failures = 0; // нарушения инварианта
let runErrors = 0; // прогон не состоялся: окружение, а не uuid
for (const runtime of runtimes) {
let work;
@@ -129,13 +130,15 @@ for (const runtime of runtimes) {
if (runtime === 'python' && /ModuleNotFoundError|No module named|ENOENT/.test(detail)) {
console.log(`[python] интерпретатор: ${PY}. Если модулей нет — указать venv: PYTHON=<путь> node ${'tests/skills/check-uuid-invariant.mjs'}`);
}
failures++;
runErrors++;
} finally {
if (work) try { rmSync(work, { recursive: true, force: true }); } catch {}
}
}
console.log(failures === 0
? 'OK — инвариант сохранения uuid держится (объект/сущности/GeneratedType)'
: `\n${failures} НАРУШЕНИЙ инварианта uuid.`);
process.exit(failures ? 1 : 0);
// Ошибку прогона от нарушения инварианта отличаем в выводе: «N НАРУШЕНИЙ инварианта uuid»
// на несобранном окружении отправляет искать баг там, где его нет.
if (failures) console.log(`\n${failures} НАРУШЕНИЙ инварианта uuid.`);
if (runErrors) console.log(`${runErrors} порт(ов) не удалось прогнать — инвариант НЕ проверен (окружение, не uuid).`);
if (!failures && !runErrors) console.log('OK — инвариант сохранения uuid держится (объект/сущности/GeneratedType)');
process.exit(failures || runErrors ? 1 : 0);