krona-staff/tests/e2e/harness
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
..
client.ts test(e2e): стенд с реальным сервером и PostgreSQL 17 2026-09-26 15:18:31 +07:00
context.ts test(e2e): стенд с реальным сервером и PostgreSQL 17 2026-09-26 15:18:31 +07:00
fixtures.ts test(e2e): стенд с реальным сервером и PostgreSQL 17 2026-09-26 15:18:31 +07:00
global-setup.ts test(e2e): запуск vitest/tsx/prettier без .cmd-обёрток (Windows) 2026-09-26 15:19:47 +07:00
node-commands.test.ts test(e2e): запуск vitest/tsx/prettier без .cmd-обёрток (Windows) 2026-09-26 15:19:47 +07:00