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(); }); });