From c576f3a36777b295f0bf4604e2d13d01d47894ba Mon Sep 17 00:00:00 2001 From: galz10 Date: Mon, 9 Feb 2026 11:45:30 -0800 Subject: [PATCH] fix(cli): disable folder trust and headless mode in tests --- packages/cli/src/config/config.test.ts | 30 +++++++++++--------------- packages/core/src/utils/headless.ts | 7 ++++++ 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index 7f7a8dbbf5..615f6d0cab 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -141,14 +141,22 @@ vi.mock('@google/gemini-cli-core', async () => { defaultDecision: ServerConfig.PolicyDecision.ASK_USER, approvalMode: ServerConfig.ApprovalMode.DEFAULT, })), - isHeadlessMode: vi.fn( - (opts) => + isHeadlessMode: vi.fn((opts) => { + if (process.env['VITEST'] === 'true') { + return ( + !!opts?.prompt || + (!!process.stdin && !process.stdin.isTTY) || + (!!process.stdout && !process.stdout.isTTY) + ); + } + return ( !!opts?.prompt || process.env['CI'] === 'true' || process.env['GITHUB_ACTIONS'] === 'true' || (!!process.stdin && !process.stdin.isTTY) || - (!!process.stdout && !process.stdout.isTTY), - ), + (!!process.stdout && !process.stdout.isTTY) + ); + }), }; }); @@ -162,15 +170,11 @@ vi.mock('./extension-manager.js', () => { // Global setup to ensure clean environment for all tests in this file const originalArgv = process.argv; const originalGeminiModel = process.env['GEMINI_MODEL']; -const originalCI = process.env['CI']; -const originalGithubActions = process.env['GITHUB_ACTIONS']; const originalStdoutIsTTY = process.stdout.isTTY; const originalStdinIsTTY = process.stdin.isTTY; beforeEach(() => { delete process.env['GEMINI_MODEL']; - delete process.env['CI']; - delete process.env['GITHUB_ACTIONS']; // Restore ExtensionManager mocks by re-assigning them ExtensionManager.prototype.getExtensions = vi.fn().mockReturnValue([]); ExtensionManager.prototype.loadExtensions = vi @@ -197,16 +201,6 @@ afterEach(() => { } else { delete process.env['GEMINI_MODEL']; } - if (originalCI !== undefined) { - process.env['CI'] = originalCI; - } else { - delete process.env['CI']; - } - if (originalGithubActions !== undefined) { - process.env['GITHUB_ACTIONS'] = originalGithubActions; - } else { - delete process.env['GITHUB_ACTIONS']; - } Object.defineProperty(process.stdout, 'isTTY', { value: originalStdoutIsTTY, configurable: true, diff --git a/packages/core/src/utils/headless.ts b/packages/core/src/utils/headless.ts index 750031e8dd..27ea5f9cbf 100644 --- a/packages/core/src/utils/headless.ts +++ b/packages/core/src/utils/headless.ts @@ -28,6 +28,13 @@ export interface HeadlessModeOptions { * @returns true if the environment is considered headless. */ export function isHeadlessMode(options?: HeadlessModeOptions): boolean { + if (process.env['GEMINI_CLI_INTEGRATION_TEST'] === 'true') { + return ( + !!options?.prompt || + (!!process.stdin && !process.stdin.isTTY) || + (!!process.stdout && !process.stdout.isTTY) + ); + } return ( process.env['CI'] === 'true' || process.env['GITHUB_ACTIONS'] === 'true' ||