import { readFileSync } from "node:fs" import { spawnSync } from "node:child_process" const pkg = JSON.parse(readFileSync(new URL("../package.json", import.meta.url), "utf8")) const npmCli = process.env.npm_execpath if (!npmCli) throw new Error("Запускайте тесты через npm --prefix backend test") for (const command of pkg.scripts["test:all"].split(/\s*&&\s*/)) { const match = /^npm run (test:[\w-]+)$/.exec(command) if (!match) throw new Error("Неизвестный формат профиля backend tests") const result = spawnSync(process.execPath, [npmCli, "run", match[1]], { cwd: new URL("../", import.meta.url), env: { ...process.env, NODE_ENV: "test" }, stdio: "inherit", }) if (result.error) throw result.error if (result.status !== 0) process.exit(result.status ?? 1) }