mirror of
https://github.com/oven-sh/bun
synced 2026-02-10 10:58:56 +00:00
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import { spawn } from "bun";
|
|
import { describe, expect, it } from "bun:test";
|
|
import { bunExe, gcTick } from "harness";
|
|
import path from "path";
|
|
|
|
describe.each(["advanced", "json"])("ipc mode %s", mode => {
|
|
it("the subprocess should be defined and the child should send", done => {
|
|
gcTick();
|
|
const returned_subprocess = spawn([bunExe(), path.join(__dirname, "bun-ipc-child.js")], {
|
|
ipc: (message, subProcess) => {
|
|
expect(subProcess).toBe(returned_subprocess);
|
|
expect(message).toBe("hello");
|
|
subProcess.kill();
|
|
done();
|
|
gcTick();
|
|
},
|
|
stdio: ["inherit", "inherit", "inherit"],
|
|
serialization: mode,
|
|
});
|
|
});
|
|
|
|
it("the subprocess should receive the parent message and respond back", done => {
|
|
gcTick();
|
|
|
|
const parentMessage = "I am your father";
|
|
const childProc = spawn([bunExe(), path.join(__dirname, "bun-ipc-child-respond.js")], {
|
|
ipc: (message, subProcess) => {
|
|
expect(message).toBe(`pong:${parentMessage}`);
|
|
subProcess.kill();
|
|
done();
|
|
gcTick();
|
|
},
|
|
stdio: ["inherit", "inherit", "inherit"],
|
|
serialization: mode,
|
|
});
|
|
|
|
childProc.send(parentMessage);
|
|
gcTick();
|
|
});
|
|
});
|