mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-05-12 12:54:07 -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
|
// Global setup to ensure clean environment for all tests in this file
|
||||||
const originalArgv = process.argv;
|
const originalArgv = process.argv;
|
||||||
const originalGeminiModel = process.env['GEMINI_MODEL'];
|
const originalGeminiModel = process.env['GEMINI_MODEL'];
|
||||||
|
const originalCI = process.env['CI'];
|
||||||
|
const originalGithubActions = process.env['GITHUB_ACTIONS'];
|
||||||
const originalStdoutIsTTY = process.stdout.isTTY;
|
const originalStdoutIsTTY = process.stdout.isTTY;
|
||||||
const originalStdinIsTTY = process.stdin.isTTY;
|
const originalStdinIsTTY = process.stdin.isTTY;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
delete process.env['GEMINI_MODEL'];
|
delete process.env['GEMINI_MODEL'];
|
||||||
|
delete process.env['CI'];
|
||||||
|
delete process.env['GITHUB_ACTIONS'];
|
||||||
// Restore ExtensionManager mocks by re-assigning them
|
// Restore ExtensionManager mocks by re-assigning them
|
||||||
ExtensionManager.prototype.getExtensions = vi.fn().mockReturnValue([]);
|
ExtensionManager.prototype.getExtensions = vi.fn().mockReturnValue([]);
|
||||||
ExtensionManager.prototype.loadExtensions = vi
|
ExtensionManager.prototype.loadExtensions = vi
|
||||||
@@ -193,6 +197,16 @@ afterEach(() => {
|
|||||||
} else {
|
} else {
|
||||||
delete process.env['GEMINI_MODEL'];
|
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', {
|
Object.defineProperty(process.stdout, 'isTTY', {
|
||||||
value: originalStdoutIsTTY,
|
value: originalStdoutIsTTY,
|
||||||
configurable: true,
|
configurable: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user