mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-04-03 18:00:48 -07:00
fix(core): improve headless mode detection for flags and query args (#18855)
This commit is contained in:
@@ -99,16 +99,50 @@ describe('isHeadlessMode', () => {
|
||||
expect(isHeadlessMode({ prompt: true })).toBe(true);
|
||||
});
|
||||
|
||||
it('should return false if query is provided but it is still a TTY', () => {
|
||||
// Note: per current logic, query alone doesn't force headless if TTY
|
||||
// This matches the existing behavior in packages/cli/src/config/config.ts
|
||||
expect(isHeadlessMode({ query: 'test query' })).toBe(false);
|
||||
it('should return true if query is provided', () => {
|
||||
expect(isHeadlessMode({ query: 'test query' })).toBe(true);
|
||||
});
|
||||
|
||||
it('should return true if -p or --prompt is in process.argv as a fallback', () => {
|
||||
const originalArgv = process.argv;
|
||||
process.argv = ['node', 'index.js', '-p', 'hello'];
|
||||
try {
|
||||
expect(isHeadlessMode()).toBe(true);
|
||||
} finally {
|
||||
process.argv = originalArgv;
|
||||
}
|
||||
|
||||
process.argv = ['node', 'index.js', '--prompt', 'hello'];
|
||||
try {
|
||||
expect(isHeadlessMode()).toBe(true);
|
||||
} finally {
|
||||
process.argv = originalArgv;
|
||||
}
|
||||
});
|
||||
|
||||
it('should return true if -y or --yolo is in process.argv as a fallback', () => {
|
||||
const originalArgv = process.argv;
|
||||
process.argv = ['node', 'index.js', '-y'];
|
||||
try {
|
||||
expect(isHeadlessMode()).toBe(true);
|
||||
} finally {
|
||||
process.argv = originalArgv;
|
||||
}
|
||||
|
||||
process.argv = ['node', 'index.js', '--yolo'];
|
||||
try {
|
||||
expect(isHeadlessMode()).toBe(true);
|
||||
} finally {
|
||||
process.argv = originalArgv;
|
||||
}
|
||||
});
|
||||
|
||||
it('should handle undefined process.stdout gracefully', () => {
|
||||
const originalStdout = process.stdout;
|
||||
// @ts-expect-error - testing edge case
|
||||
delete process.stdout;
|
||||
Object.defineProperty(process, 'stdout', {
|
||||
value: undefined,
|
||||
configurable: true,
|
||||
});
|
||||
|
||||
try {
|
||||
expect(isHeadlessMode()).toBe(false);
|
||||
@@ -122,8 +156,10 @@ describe('isHeadlessMode', () => {
|
||||
|
||||
it('should handle undefined process.stdin gracefully', () => {
|
||||
const originalStdin = process.stdin;
|
||||
// @ts-expect-error - testing edge case
|
||||
delete process.stdin;
|
||||
Object.defineProperty(process, 'stdin', {
|
||||
value: undefined,
|
||||
configurable: true,
|
||||
});
|
||||
|
||||
try {
|
||||
expect(isHeadlessMode()).toBe(false);
|
||||
|
||||
Reference in New Issue
Block a user