From da51d8ab7d7f32d65ba37bcde3a0399ec5ee061c Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Mon, 17 Aug 2026 17:15:26 +0300 Subject: [PATCH] =?UTF-8?q?fix(tests):=20verify-snapshots=20=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=BF=D0=B0=D0=B5=D1=82=20=D0=BD=D0=B5=D0=B4=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D1=83=D0=BF=D0=BD=D1=83=D1=8E=20=D0=B2=D0=BD=D0=B5=D1=88?= =?UTF-8?q?=D0=BD=D1=8E=D1=8E=20=D0=B2=D1=8B=D0=B3=D1=80=D1=83=D0=B7=D0=BA?= =?UTF-8?q?=D1=83,=20=D0=B0=20=D0=BD=D0=B5=20=D0=BF=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit runner.mjs при отсутствии external-пути возвращает SKIP, verify-snapshots писал ошибку. Путь к дампу ERP/БП машинозависим: на Mac mini корпуса нет, и два кейса role-validate краснели при полностью исправном навыке. README предупреждает ровно об этом: раннеры читают один DSL каждый своей реализацией. Co-Authored-By: Claude Opus 5 (1M context) --- tests/skills/verify-snapshots.mjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/skills/verify-snapshots.mjs b/tests/skills/verify-snapshots.mjs index bb4831ff..3c924a93 100644 --- a/tests/skills/verify-snapshots.mjs +++ b/tests/skills/verify-snapshots.mjs @@ -764,8 +764,13 @@ async function verifyCase(skillName, caseName, skillConfig, caseData, opts) { log(`fixture: ${fixtureName}`, true); } else if (typeof caseData.setup === 'string' && caseData.setup.startsWith('external:')) { const extPath = resolve(REPO_ROOT, caseData.setup.slice('external:'.length)); + // Недоступная внешняя выгрузка — СКИП, как в runner.mjs (`ensureSetup`, ветка + // external). Путь к дампу ERP/БП машинозависим: на маке его нет, и падение + // здесь красило набор при полностью исправном навыке — расхождение двух + // раннеров по одному и тому же ключу DSL. if (!existsSync(extPath)) { - result.errors.push(`External setup path not found: ${extPath}`); + result.skipped = true; + result.skipReason = `внешняя выгрузка недоступна на этой машине: ${extPath}`; return result; } cpSync(extPath, workDir, { recursive: true });