Files
sproutclaw/packages/coding-agent/test/http-dispatcher.test.ts
2026-06-16 18:53:19 +02:00

54 lines
1.5 KiB
TypeScript

import { afterEach, beforeEach, describe, expect, it } from "vitest";
import { applyHttpProxySettings } from "../src/core/http-dispatcher.ts";
const PROXY_ENV_KEYS = ["HTTP_PROXY", "HTTPS_PROXY"] as const;
describe("http proxy settings", () => {
let savedEnv: Record<(typeof PROXY_ENV_KEYS)[number], string | undefined>;
beforeEach(() => {
savedEnv = Object.fromEntries(PROXY_ENV_KEYS.map((key) => [key, process.env[key]])) as Record<
(typeof PROXY_ENV_KEYS)[number],
string | undefined
>;
for (const key of PROXY_ENV_KEYS) {
delete process.env[key];
}
});
afterEach(() => {
for (const key of PROXY_ENV_KEYS) {
const value = savedEnv[key];
if (value === undefined) {
delete process.env[key];
} else {
process.env[key] = value;
}
}
});
it("applies httpProxy to HTTP_PROXY and HTTPS_PROXY", () => {
applyHttpProxySettings("http://127.0.0.1:7890");
expect(process.env.HTTP_PROXY).toBe("http://127.0.0.1:7890");
expect(process.env.HTTPS_PROXY).toBe("http://127.0.0.1:7890");
});
it("does not override existing proxy env vars", () => {
process.env.HTTP_PROXY = "http://env-http:8080";
process.env.HTTPS_PROXY = "http://env-https:8080";
applyHttpProxySettings("http://settings:7890");
expect(process.env.HTTP_PROXY).toBe("http://env-http:8080");
expect(process.env.HTTPS_PROXY).toBe("http://env-https:8080");
});
it("ignores empty values", () => {
applyHttpProxySettings(" ");
expect(process.env.HTTP_PROXY).toBeUndefined();
expect(process.env.HTTPS_PROXY).toBeUndefined();
});
});