






















@@ -83,6 +83,14 @@ let FEISHU_USER_AGENT: string;
8383let priorProxyEnv: Partial<Record<ProxyEnvKey, string | undefined>> = {};
8484let priorFeishuTimeoutEnv: string | undefined;
858586+function setFeishuTestEnvValue(key: string, value: string | undefined): void {
87+if (value === undefined) {
88+Reflect.deleteProperty(process.env, key);
89+} else {
90+Reflect.set(process.env, key, value);
91+}
92+}
93+8694vi.mock("./channel.js", () => ({
8795feishuPlugin: feishuPluginMock,
8896}));
@@ -213,10 +221,10 @@ beforeAll(async () => {
213221beforeEach(() => {
214222priorProxyEnv = {};
215223priorFeishuTimeoutEnv = process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR];
216-delete process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR];
224+setFeishuTestEnvValue(FEISHU_HTTP_TIMEOUT_ENV_VAR, undefined);
217225for (const key of proxyEnvKeys) {
218226priorProxyEnv[key] = process.env[key];
219-delete process.env[key];
227+setFeishuTestEnvValue(key, undefined);
220228}
221229vi.clearAllMocks();
222230clearClientCache();
@@ -238,18 +246,9 @@ beforeEach(() => {
238246239247afterEach(() => {
240248for (const key of proxyEnvKeys) {
241-const value = priorProxyEnv[key];
242-if (value === undefined) {
243-delete process.env[key];
244-} else {
245-process.env[key] = value;
246-}
247-}
248-if (priorFeishuTimeoutEnv === undefined) {
249-delete process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR];
250-} else {
251-process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR] = priorFeishuTimeoutEnv;
249+setFeishuTestEnvValue(key, priorProxyEnv[key]);
252250}
251+setFeishuTestEnvValue(FEISHU_HTTP_TIMEOUT_ENV_VAR, priorFeishuTimeoutEnv);
253252setFeishuClientRuntimeForTest();
254253});
255254@@ -359,7 +358,7 @@ describe("createFeishuClient HTTP timeout", () => {
359358});
360359361360it("uses env timeout override when provided and no direct timeout is set", async () => {
362-process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR] = "60000";
361+setFeishuTestEnvValue(FEISHU_HTTP_TIMEOUT_ENV_VAR, "60000");
363362364363createFeishuClient({
365364appId: "app_8",
@@ -373,7 +372,7 @@ describe("createFeishuClient HTTP timeout", () => {
373372374373it("ignores non-decimal env timeout overrides", async () => {
375374for (const value of ["0x10", "1e3", "10.5"]) {
376-process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR] = value;
375+setFeishuTestEnvValue(FEISHU_HTTP_TIMEOUT_ENV_VAR, value);
377376378377createFeishuClient({
379378appId: `app-${value}`,
@@ -387,7 +386,7 @@ describe("createFeishuClient HTTP timeout", () => {
387386});
388387389388it("prefers direct timeout over env override", async () => {
390-process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR] = "60000";
389+setFeishuTestEnvValue(FEISHU_HTTP_TIMEOUT_ENV_VAR, "60000");
391390392391createFeishuClient({
393392appId: "app_10",
@@ -401,7 +400,10 @@ describe("createFeishuClient HTTP timeout", () => {
401400});
402401403402it("clamps env timeout override to max bound", async () => {
404-process.env[FEISHU_HTTP_TIMEOUT_ENV_VAR] = String(FEISHU_HTTP_TIMEOUT_MAX_MS + 123_456);
403+setFeishuTestEnvValue(
404+FEISHU_HTTP_TIMEOUT_ENV_VAR,
405+String(FEISHU_HTTP_TIMEOUT_MAX_MS + 123_456),
406+);
405407406408createFeishuClient({
407409appId: "app_9",
@@ -505,7 +507,7 @@ describe("createFeishuWSClient proxy handling", () => {
505507});
506508507509it("creates a ws proxy agent when lowercase https_proxy is set", async () => {
508-process.env.https_proxy = "http://lower-https:8001";
510+setFeishuTestEnvValue("https_proxy", "http://lower-https:8001");
509511510512await createFeishuWSClient(baseAccount);
511513@@ -515,7 +517,7 @@ describe("createFeishuWSClient proxy handling", () => {
515517});
516518517519it("creates a ws proxy agent when uppercase HTTPS_PROXY is set", async () => {
518-process.env.HTTPS_PROXY = "http://upper-https:8002";
520+setFeishuTestEnvValue("HTTPS_PROXY", "http://upper-https:8002");
519521520522await createFeishuWSClient(baseAccount);
521523@@ -525,7 +527,7 @@ describe("createFeishuWSClient proxy handling", () => {
525527});
526528527529it("falls back to HTTP_PROXY for ws proxy agent creation", async () => {
528-process.env.HTTP_PROXY = "http://upper-http:8999";
530+setFeishuTestEnvValue("HTTP_PROXY", "http://upper-http:8999");
529531530532await createFeishuWSClient(baseAccount);
531533此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。