mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-16 00:51:25 -07:00
test(cli): isolate config tests from CI environment variables
Unset CI and GITHUB_ACTIONS environment variables in config.test.ts to ensure tests that rely on interactive/TTY mode pass correctly in CI environments. The isHeadlessMode detection logic defaults to non-interactive mode if these variables are present, which previously caused assertion failures in tests expecting interactive startup messages and specific tool exclusion behaviors.
This commit is contained in:
@@ -162,11 +162,15 @@ 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
|
||||
@@ -193,6 +197,16 @@ 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,
|
||||
|
||||
Reference in New Issue
Block a user