From 48f9bc1d52c71cc0f1d0d799f515d60a766fd581 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Thu, 13 Aug 2026 16:03:26 +0300 Subject: [PATCH] =?UTF-8?q?fix(tests):=20check-uuid-invariant=20=E2=80=94?= =?UTF-8?q?=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D1=83=20=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=D0=BD=D0=B0=20=D0=BD=D0=B5=20=D0=BD=D0=B0=D0=B7?= =?UTF-8?q?=D1=8B=D0=B2=D0=B0=D1=82=D1=8C=20=D0=BD=D0=B0=D1=80=D1=83=D1=88?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=B8=D0=BD=D0=B2=D0=B0=D1=80?= =?UTF-8?q?=D0=B8=D0=B0=D0=BD=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Счётчик был один: несобранное окружение давало «1 НАРУШЕНИЙ инварианта uuid» и отправляло искать баг там, где его нет. Счётчики разведены, exit по-прежнему 1 в обоих случаях — непрогнанный порт это не «зелено». Co-Authored-By: Claude Opus 5 (1M context) --- tests/skills/check-uuid-invariant.mjs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/tests/skills/check-uuid-invariant.mjs b/tests/skills/check-uuid-invariant.mjs index 00a8e63e..5056587e 100644 --- a/tests/skills/check-uuid-invariant.mjs +++ b/tests/skills/check-uuid-invariant.mjs @@ -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);