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:
galz10
2026-02-09 10:10:01 -08:00
parent f1454e6f68
commit ad02f74171

View File

@@ -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,