Files
MikrotikManager/backend/scripts/test.mjs
T

17 lines
829 B
JavaScript

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)
}