import { describe, expect, test } from "vitest";import { NodeRuntime } from "../src/index.js";import { createInMemoryFileSystem } from "../src/test-runtime.js"; describe("NodeRuntime execCommand output capture", () => { test( "captures complete stdout when a fast process exits immediately", async () => { const runtime = await NodeRuntime.create({ filesystem: createInMemoryFileSystem(), }); const expected = "x".repeat(64 * 1024); const script = [ 'const fs = require("node:fs");', "const chunk = Buffer.alloc(4096, 120);", "for (let i = 0; i < 16; i += 1) fs.writeSync(1, chunk);", "process.exit(0);", ].join(" "); try { for (let i = 0; i < 10; i += 1) { const result = await runtime.execCommand("node", ["-e", script]); expect(result.exitCode).toBe(0); expect(result.stdout).toBe(expected); expect(result.stderr).toBe(""); } } finally { await runtime.dispose(); } }, 120_000, );});
import { describe, expect, test } from "vitest";
import { NodeRuntime } from "../src/index.js";
import { createInMemoryFileSystem } from "../src/test-runtime.js";
describe("NodeRuntime execCommand output capture", () => {
test(
"captures complete stdout when a fast process exits immediately",
async () => {
const runtime = await NodeRuntime.create({
filesystem: createInMemoryFileSystem(),
});
const expected = "x".repeat(64 * 1024);
const script = [
'const fs = require("node:fs");',
"const chunk = Buffer.alloc(4096, 120);",
"for (let i = 0; i < 16; i += 1) fs.writeSync(1, chunk);",
"process.exit(0);",
].join(" ");
try {
for (let i = 0; i < 10; i += 1) {
const result = await runtime.execCommand("node", ["-e", script]);
expect(result.exitCode).toBe(0);
expect(result.stdout).toBe(expected);
expect(result.stderr).toBe("");
}
} finally {
await runtime.dispose();
}
},
120_000,
);
});