From 6b0785028f5bd0fab09b10da157254a4bf515fd7 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 7 Mar 2026 17:34:36 +0000 Subject: [PATCH] refactor(feishu): dedupe accounts env secret-ref checks --- extensions/feishu/src/accounts.test.ts | 71 +++++++++++++------------- 1 file changed, 35 insertions(+), 36 deletions(-) diff --git a/extensions/feishu/src/accounts.test.ts b/extensions/feishu/src/accounts.test.ts index bc04d4c56c2..4e51e9db495 100644 --- a/extensions/feishu/src/accounts.test.ts +++ b/extensions/feishu/src/accounts.test.ts @@ -9,6 +9,35 @@ import type { FeishuConfig } from "./types.js"; const asConfig = (value: Partial) => value as FeishuConfig; +function withEnvVar(key: string, value: string | undefined, run: () => void) { + const prev = process.env[key]; + if (value === undefined) { + delete process.env[key]; + } else { + process.env[key] = value; + } + try { + run(); + } finally { + if (prev === undefined) { + delete process.env[key]; + } else { + process.env[key] = prev; + } + } +} + +function expectUnresolvedEnvSecretRefError(key: string) { + expect(() => + resolveFeishuCredentials( + asConfig({ + appId: "cli_123", + appSecret: { source: "env", provider: "default", id: key } as never, + }), + ), + ).toThrow(/unresolved SecretRef/i); +} + describe("resolveDefaultFeishuAccountId", () => { it("prefers channels.feishu.defaultAccount when configured", () => { const cfg = { @@ -128,24 +157,9 @@ describe("resolveFeishuCredentials", () => { it("throws unresolved SecretRef error when env SecretRef points to missing env var", () => { const key = "FEISHU_APP_SECRET_MISSING_TEST"; - const prev = process.env[key]; - delete process.env[key]; - try { - expect(() => - resolveFeishuCredentials( - asConfig({ - appId: "cli_123", - appSecret: { source: "env", provider: "default", id: key } as never, - }), - ), - ).toThrow(/unresolved SecretRef/i); - } finally { - if (prev === undefined) { - delete process.env[key]; - } else { - process.env[key] = prev; - } - } + withEnvVar(key, undefined, () => { + expectUnresolvedEnvSecretRefError(key); + }); }); it("resolves env SecretRef objects when unresolved refs are allowed", () => { @@ -204,24 +218,9 @@ describe("resolveFeishuCredentials", () => { it("preserves unresolved SecretRef diagnostics for env refs in default mode", () => { const key = "FEISHU_APP_SECRET_POLICY_TEST"; - const prev = process.env[key]; - process.env[key] = "secret_from_env"; - try { - expect(() => - resolveFeishuCredentials( - asConfig({ - appId: "cli_123", - appSecret: { source: "env", provider: "default", id: key } as never, - }), - ), - ).toThrow(/unresolved SecretRef/i); - } finally { - if (prev === undefined) { - delete process.env[key]; - } else { - process.env[key] = prev; - } - } + withEnvVar(key, "secret_from_env", () => { + expectUnresolvedEnvSecretRefError(key); + }); }); it("trims and returns credentials when values are valid strings", () => {