From 16360588d70bde8112c1c22140c0ca2e70d98f78 Mon Sep 17 00:00:00 2001 From: cornmander Date: Wed, 20 Aug 2025 21:44:34 -0400 Subject: [PATCH] Add integration test to confirm environment variable propagation. (#6696) --- integration-tests/shell-service.test.ts | 30 +++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/integration-tests/shell-service.test.ts b/integration-tests/shell-service.test.ts index 387d635c..5cac4f7e 100644 --- a/integration-tests/shell-service.test.ts +++ b/integration-tests/shell-service.test.ts @@ -123,4 +123,34 @@ describe('ShellExecutionService programmatic integration tests', () => { const exitedCleanly = result.exitCode === 0 && result.signal === null; expect(exitedCleanly, 'Process should not have exited cleanly').toBe(false); }); + + it('should propagate environment variables to the child process', async () => { + const varName = 'GEMINI_CLI_TEST_VAR'; + const varValue = `test-value`; + process.env[varName] = varValue; + + try { + const command = + process.platform === 'win32' ? `echo %${varName}%` : `echo $${varName}`; + const onOutputEvent = vi.fn(); + const abortController = new AbortController(); + + const handle = await ShellExecutionService.execute( + command, + testDir, + onOutputEvent, + abortController.signal, + false, + ); + + const result = await handle.result; + + expect(result.error).toBeNull(); + expect(result.exitCode).toBe(0); + expect(result.output).toContain(varValue); + } finally { + // Clean up the env var to prevent side-effects on other tests. + delete process.env[varName]; + } + }); });