e715b04a11
When proxy environment variables (https_proxy, HTTPS_PROXY, http_proxy, HTTP_PROXY) are detected and NODE_USE_ENV_PROXY is not already set to "1", the action spawns a child process with NODE_USE_ENV_PROXY=1 to enable Node.js native proxy support. - Add lib/run-with-proxy.js shared utility for both main.js and post.js - Update main.js and post.js to use runWithProxy() wrapper - Add tests for proxy spawning, child error handling, and already-enabled path - 100% code coverage maintained Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
35 lines
928 B
JavaScript
35 lines
928 B
JavaScript
// Verify that `post.js` spawns a child process when a proxy env var is set
|
|
// and `NODE_USE_ENV_PROXY` is not set.
|
|
import assert from "node:assert";
|
|
import { mock } from "node:test";
|
|
|
|
let spawnArgs;
|
|
|
|
mock.module("node:child_process", {
|
|
namedExports: {
|
|
spawn(command, args, options) {
|
|
spawnArgs = { command, args, options };
|
|
return {
|
|
on(event, callback) {
|
|
if (event === "exit") callback(0);
|
|
},
|
|
};
|
|
},
|
|
},
|
|
});
|
|
|
|
process.env.https_proxy = "http://proxy.example.com";
|
|
delete process.env.NODE_USE_ENV_PROXY;
|
|
|
|
const { default: runPromise } = await import("../post.js");
|
|
await runPromise;
|
|
|
|
assert(spawnArgs, "spawn was called");
|
|
assert.equal(
|
|
spawnArgs.options.env.NODE_USE_ENV_PROXY,
|
|
"1",
|
|
"NODE_USE_ENV_PROXY is set to '1' in child env",
|
|
);
|
|
assert.equal(spawnArgs.options.stdio, "inherit", "stdio is inherited");
|
|
assert.equal(process.exitCode, 0, "process exit code is 0");
|