From 89f65ca6a68272e660deaac89cf1627b8b6ef869 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Mon, 17 Aug 2026 18:44:14 +0300 Subject: [PATCH] =?UTF-8?q?fix(tests):=20=D1=87=D0=B8=D0=BD=D0=B8=D1=82=20?= =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=D1=82=D1=83=D1=80=D1=83=20role-info/mu?= =?UTF-8?q?ltiple-types=20=D0=B8=20=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D1=83=20?= =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=BF=D0=B0=20=D0=B2=20verify?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Кейс собирал через meta-compile регистр сведений без измерений и ресурсов — платформа такую конфигурацию не принимает («Регистр без измерений, ресурсов и реквизитов»), и verify-snapshots падал на нём на обеих ОС. Регистру добавлены измерение и ресурс, эталон переснят: дельта только в XML регистра, права роли не изменились. Заодно построчный вывод verify рисовал скипы как ✗ (иконка выбиралась по result.passed, который скип не выставляет): десяток «✗» под «0 failed» читался как сломанный набор. Co-Authored-By: Claude Opus 5 (1M context) --- .../cases/role-info/multiple-types.json | 4 +- .../InformationRegisters/Цены.xml | 89 ++++++++++++++++++- tests/skills/verify-snapshots.mjs | 7 +- 3 files changed, 96 insertions(+), 4 deletions(-) diff --git a/tests/skills/cases/role-info/multiple-types.json b/tests/skills/cases/role-info/multiple-types.json index 3ada5525..34ec58b4 100644 --- a/tests/skills/cases/role-info/multiple-types.json +++ b/tests/skills/cases/role-info/multiple-types.json @@ -27,7 +27,9 @@ "script": "meta-compile/scripts/meta-compile", "input": { "type": "InformationRegister", - "name": "Цены" + "name": "Цены", + "dimensions": ["Товар: CatalogRef.Товары"], + "resources": ["Цена: Number(15,2)"] }, "args": { "-JsonPath": "{inputFile}", diff --git a/tests/skills/cases/role-info/snapshots/multiple-types/InformationRegisters/Цены.xml b/tests/skills/cases/role-info/snapshots/multiple-types/InformationRegisters/Цены.xml index 2ca44192..092bf1d1 100644 --- a/tests/skills/cases/role-info/snapshots/multiple-types/InformationRegisters/Цены.xml +++ b/tests/skills/cases/role-info/snapshots/multiple-types/InformationRegisters/Цены.xml @@ -169,6 +169,93 @@ false false - + + + + Цена + + + ru + Цена + + + + + xs:decimal + + 15 + 2 + Any + + + false + + + + false + + false + false + + + false + 0 + DontCheck + Items + + + Auto + Auto + + + Auto + DontIndex + Use + Use + + + + + Товар + + + ru + Товар + + + + + cfg:CatalogRef.Товары + + false + + + + false + + false + false + + + false + + DontCheck + Items + + + Auto + Auto + + + Auto + false + false + false + DontIndex + Use + Use + + + \ No newline at end of file diff --git a/tests/skills/verify-snapshots.mjs b/tests/skills/verify-snapshots.mjs index 3c924a93..2b88d482 100644 --- a/tests/skills/verify-snapshots.mjs +++ b/tests/skills/verify-snapshots.mjs @@ -1466,10 +1466,13 @@ async function main() { const elapsed = ((performance.now() - t0) / 1000).toFixed(1); if (!opts.verbose) { - const icon = result.passed ? '\u2713' : '\u2717'; + // Скип — своя иконка, а не ✗: скипнутый кейс `passed` не выставляет, и построчный + // вывод рисовал его падением. Итоговая строка при этом считала его skipped, из-за + // чего десяток «✗» под «0 failed» читался как сломанный набор. + const icon = result.skipped ? '\u25cb' : (result.passed ? '\u2713' : '\u2717'); console.log(` ${icon} (${elapsed}s)${result.errors.length ? ' — ' + result.errors[0].substring(0, 80) : ''}`); } else { - console.log(` → ${result.passed ? 'PASS' : 'FAIL'} (${elapsed}s)\n`); + console.log(` → ${result.skipped ? 'SKIP' : (result.passed ? 'PASS' : 'FAIL')} (${elapsed}s)\n`); } results.push(result);