Files
systemic-game-design-course/tools/test/helpers.mjs
T
2026-10-28 23:54:55 +01:00

32 lines
961 B
JavaScript

import { spawnSync, execFileSync } from "node:child_process";
import { cpSync, mkdtempSync } from "node:fs";
import { tmpdir } from "node:os";
import { join, dirname } from "node:path";
import { fileURLToPath } from "node:url";
const here = dirname(fileURLToPath(import.meta.url));
export const fixtures = join(here, "fixtures");
export const toolsDir = join(here, "..");
export function run(script, args = [], env = {}) {
const r = spawnSync("node", [join(toolsDir, script), ...args], {
encoding: "utf8",
env: { ...process.env, ...env },
});
return { code: r.status, out: (r.stdout || "") + (r.stderr || "") };
}
export function copyFixture(name) {
const dir = mkdtempSync(join(tmpdir(), "sdc-"));
cpSync(join(fixtures, name), dir, { recursive: true });
return dir;
}
export function git(cwd, ...args) {
return execFileSync(
"git",
["-c", "user.name=t", "-c", "user.email=t@t", ...args],
{ cwd, encoding: "utf8" },
);
}