mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-30 23:14:32 -07:00
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
|
|
/**
|
||
|
|
* @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');
|
||
|
|
}
|