From 399e02148de6a2323a9d4bf7e91eac77d4e7a726 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Fri, 21 Aug 2026 10:51:07 +0300 Subject: [PATCH] =?UTF-8?q?fix(tests):=20verify-snapshots=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=20=D1=88=D0=B0=D0=B3=20del?= =?UTF-8?q?etePath?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Шаг preRun deletePath поддерживал только runner.mjs. В платформенной проверке такой шаг проваливался в ветку запуска скрипта и падал на step.script.split, то есть кейс не проверялся вовсе, а выглядел упавшим инструментом. Шаг без script/writeFile/deletePath теперь отвергается с внятным текстом, а не падает на undefined. Co-Authored-By: Claude Opus 5 --- tests/skills/verify-snapshots.mjs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/skills/verify-snapshots.mjs b/tests/skills/verify-snapshots.mjs index 6a212769f..e5ac1463e 100644 --- a/tests/skills/verify-snapshots.mjs +++ b/tests/skills/verify-snapshots.mjs @@ -633,6 +633,16 @@ function runPreSteps(preRun, workDir, runtime, log) { log(`preRun: writeFile ${step.writeFile.path}`, true); continue; } + // deletePath step — как в runner.mjs: состояние «файла нет» выражается удалением. + // Без этой ветки шаг проваливался в запуск скрипта и падал на step.script.split. + if (step.deletePath) { + rmSync(join(workDir, step.deletePath), { recursive: true, force: true }); + log(`preRun: deletePath ${step.deletePath}`, true); + continue; + } + if (!step.script) { + throw new Error(`preRun: шаг без script/writeFile/deletePath — ${JSON.stringify(step).slice(0, 120)}`); + } const preArgs = []; for (const [flag, value] of Object.entries(step.args || {})) { preArgs.push(flag);