( overrides: Record<string, string | undefined>, fn: () => T, )
| 16 | } |
| 17 | |
| 18 | function withEnv<T>( |
| 19 | overrides: Record<string, string | undefined>, |
| 20 | fn: () => T, |
| 21 | ): T { |
| 22 | const previous = new Map<string, string | undefined>(); |
| 23 | for (const [key, value] of Object.entries(overrides)) { |
| 24 | previous.set(key, process.env[key]); |
| 25 | if (value === undefined) { |
| 26 | delete process.env[key]; |
| 27 | } else { |
| 28 | process.env[key] = value; |
| 29 | } |
| 30 | } |
| 31 | |
| 32 | try { |
| 33 | return fn(); |
| 34 | } finally { |
| 35 | for (const [key, value] of previous.entries()) { |
| 36 | if (value === undefined) { |
| 37 | delete process.env[key]; |
| 38 | } else { |
| 39 | process.env[key] = value; |
| 40 | } |
| 41 | } |
| 42 | } |
| 43 | } |
| 44 | |
| 45 | test("config manager can clear feishu adapter settings with null", () => { |
| 46 | const rootDir = createTempRootDir(); |
no outgoing calls
no test coverage detected