From a862e913c8b0ee9a401e213e851e1d187ad1daa0 Mon Sep 17 00:00:00 2001 From: Nick Shirokov Date: Sun, 12 Jul 2026 14:30:04 +0300 Subject: [PATCH] =?UTF-8?q?fix(tests):=20verify-snapshots=20=E2=80=94=20ho?= =?UTF-8?q?nor=20v8path=20=D0=BD=D0=B0=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB?= =?UTF-8?q?=D0=BD=D1=8F=D0=B5=D0=BC=D1=8B=D0=B9=20=D1=84=D0=B0=D0=B9=D0=BB?= =?UTF-8?q?=20(ibcmd)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit loadV8Context трактовал v8path только как каталог: путь на файл (.../ibcmd) не резолвился и МОЛЧА подменялся авто-детектом обратно на 1cv8 (Platform-строка печатала 1cv8 при заданном ibcmd). Теперь: v8path-файл используется как есть → db-* навыки сами выбирают движок по basename, verify умеет гонять цикл через ibcmd. Явно заданный неразрешимый путь → null (ошибка), а не тихая подмена платформой. Авто-детект только при пустом v8path. Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/skills/verify-snapshots.mjs | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/tests/skills/verify-snapshots.mjs b/tests/skills/verify-snapshots.mjs index a936d06e..437557b0 100644 --- a/tests/skills/verify-snapshots.mjs +++ b/tests/skills/verify-snapshots.mjs @@ -103,14 +103,18 @@ function loadV8Context() { if (existsSync(projectFile)) { try { v8bin = JSON.parse(readFileSync(projectFile, 'utf8')).v8path || null; } catch { /* ignore */ } } - let v8exe = resolveV8Exe(v8bin); - if (!v8exe) { - // v8path пуст/не резолвится — пробуем авто-детект (актуально на маке с /opt/1cv8//). - const detected = autodetectV8bin(); - if (detected) { v8bin = detected; v8exe = resolveV8Exe(detected); } + if (v8bin) { + // v8path указывает прямо на исполняемый файл (1cv8/ibcmd) — используем как есть, не подменяя авто-детектом. + // Так verify умеет гонять цикл через ibcmd (db-* навыки сами выбирают движок по basename). + if (existsSync(v8bin) && statSync(v8bin).isFile()) return { v8path: v8bin, v8exe: v8bin }; + const v8exe = resolveV8Exe(v8bin); + // Явно заданный, но неразрешимый путь — это ошибка конфигурации, НЕ повод молча брать другую платформу. + return v8exe ? { v8path: v8bin, v8exe } : null; } - if (!v8exe) return null; - return { v8path: v8bin, v8exe }; + // v8path не задан — авто-детект (актуально на маке с /opt/1cv8//). + const detected = autodetectV8bin(); + if (!detected) return null; + return { v8path: detected, v8exe: resolveV8Exe(detected) }; } // ─── Script execution ───────────────────────────────────────────────────────