krona-staff/scripts/test
grok 0aaa2f4d2d test(e2e): запуск vitest/tsx/prettier без .cmd-обёрток (Windows)
Зачем: проект разрабатывается под Windows, а стенд там не стартовал:
spawn('npx') и spawn('node_modules/.bin/tsx') без shell падают с ENOENT,
потому что в Windows это .cmd-файлы (приёмка владельца, TASK-GROK-2 п.1).

Что: scripts/test/node-commands.mjs находит JS-точки входа через
require.resolve (tsx/cli, vitest.mjs, prettier.cjs) и всегда запускает их
текущим node (process.execPath). Сервер запускается одним процессом
`node --import tsx src/server.ts`: CLI tsx порождает дочерний node, и под
Windows kill() родителя оставил бы сервер-сироту на порту. baseEnv()
передаёт дочерним процессам PATH и под win32 системные переменные
(SystemRoot, TEMP и др.), без которых node на Windows не работает с сетью,
но не наследует секреты родителя.

Проверка на Linux: tests/e2e/harness/node-commands.test.ts (входит в
npm test) — команды начинаются с process.execPath, без .cmd/.bin/npx,
файлы существуют; исходники стенда не вызывают npx и node_modules/.bin.
Реальный прогон на Windows 11 — не проверено (нет Windows-раннера).
2026-09-26 15:19:47 +07:00
..
ci-local.sh ci: PostgreSQL 17 с ролями как в pilot, roundtrip миграций, e2e, SHA-пины 2026-09-26 15:18:31 +07:00
migrate-roundtrip.mjs test(db): стенд PostgreSQL с мигратором без SUPERUSER 2026-09-26 15:18:31 +07:00
n13-race.mjs test(e2e): запуск vitest/tsx/prettier без .cmd-обёрток (Windows) 2026-09-26 15:19:47 +07:00
node-commands.d.mts test(e2e): запуск vitest/tsx/prettier без .cmd-обёрток (Windows) 2026-09-26 15:19:47 +07:00
node-commands.mjs test(e2e): запуск vitest/tsx/prettier без .cmd-обёрток (Windows) 2026-09-26 15:19:47 +07:00
provision-pg.mjs test(db): стенд PostgreSQL с мигратором без SUPERUSER 2026-09-26 15:18:31 +07:00
run-e2e.mjs test(e2e): запуск vitest/tsx/prettier без .cmd-обёрток (Windows) 2026-09-26 15:19:47 +07:00