test(runner): шаг preRun git для кейсов с репозиторием

Кейсы навыков, читающих изменения из git, строят репозиторий шагом
{ "git": [...] }. Общая реализация для runner.mjs и verify-snapshots.mjs
в tests/common/git-step.mjs — настройки машины на фикстуру не влияют.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ANXwbMUhuRFSCsq2RgmTTm
This commit is contained in:
Nick Shirokov
2026-09-24 18:08:20 +03:00
co-authored by Claude Opus 5.5
parent bd10ec08b6
commit ce7238792e
4 changed files with 31 additions and 1 deletions
+7
View File
@@ -12,6 +12,7 @@ import { tmpdir, cpus } from 'os';
// есть не-ASCII символы — кириллическое имя пользователя в %TEMP%, кириллическое имя объекта 1С
// в deletePath. Подробности и таблица сборок — в самом модуле.
import { removePathSync, copyTreeSync } from '../common/fsutil.mjs';
import { runGitStep } from '../common/git-step.mjs';
// ─── Paths ──────────────────────────────────────────────────────────────────
@@ -869,6 +870,12 @@ async function runCaseAsync(testCase, opts) {
removePathSync(join(workDir, step.deletePath));
continue;
}
// git step — git-команда в workDir: так строится репозиторий для навыков, читающих
// изменения из git (общая реализация с verify-snapshots — tests/common/git-step.mjs).
if (step.git) {
runGitStep(workDir, step.git);
continue;
}
const preScript = resolveScript(step.script, opts.runtime);
const preArgs = [];
for (const [flag, value] of Object.entries(step.args || {})) {