rea/tests/fixtures/processReactiveScenario.mjs

27 lines
922 B
JavaScript

import { spawn, spawnSync } from "node:child_process";
import { writeFile } from "node:fs/promises";
import { WebSocket } from "ws";
process.stdout.write("Ready\n");
const worker = spawn(
process.execPath,
["-e", 'process.title = "rea-reactive-worker"; setTimeout(() => {}, 750);'],
{ stdio: "ignore" },
);
process.stdout.write("Collecting\n");
spawnSync(process.argv[2], ["probe"], { stdio: "ignore" });
await writeFile("reactive-result.txt", "created");
await fetch(`${process.env.REA_REPLAY_HTTP_URL}/reactive`);
await new Promise((resolve, reject) => {
const socket = new WebSocket(process.env.REA_REPLAY_WEBSOCKET_URL);
socket.once("open", () => socket.send("reactive-client"));
socket.once("message", () => socket.close());
socket.once("close", resolve);
socket.once("error", reject);
});
await new Promise((resolve, reject) => {
worker.once("exit", resolve);
worker.once("error", reject);
});