/** * @license * Copyright 2026 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import { join } from 'node:path'; /** * Isolate the test environment by setting environment variables * to point to a temporary run directory. * * @param runDir - The temporary directory for this test run. */ export function isolateTestEnv(runDir: string): void { // Set the home directory to the test run directory to avoid conflicts // with the user's local config. process.env['HOME'] = runDir; if (process.platform === 'win32') { process.env['USERPROFILE'] = runDir; } // We also need to set the config dir explicitly, since the code might // construct the path before the HOME env var is set. process.env['GEMINI_CONFIG_DIR'] = join(runDir, '.gemini'); // Force file storage to avoid keychain prompts/hangs in CI, especially on macOS process.env['GEMINI_FORCE_FILE_STORAGE'] = 'true'; // Mark as integration test process.env['GEMINI_CLI_INTEGRATION_TEST'] = 'true'; // Isolate telemetry log process.env['TELEMETRY_LOG_FILE'] = join(runDir, 'telemetry.log'); }