@@ -99,10 +99,49 @@ describe('isHeadlessMode', () => {
9999 expect ( isHeadlessMode ( { prompt : true } ) ) . toBe ( true ) ;
100100 } ) ;
101101
102+ < < < << << HEAD
102103 it ( 'should return false if query is provided but it is still a TTY' , ( ) => {
103104 // Note: per current logic, query alone doesn't force headless if TTY
104105 // This matches the existing behavior in packages/cli/src/config/config.ts
105106 expect ( isHeadlessMode ( { query : 'test query' } ) ) . toBe ( false ) ;
107+ === = ===
108+ it ( 'should return true if query is provided' , ( ) => {
109+ expect ( isHeadlessMode ( { query : 'test query' } ) ) . toBe ( true ) ;
110+ } ) ;
111+
112+ it ( 'should return true if -p or --prompt is in process.argv as a fallback' , ( ) => {
113+ const originalArgv = process . argv ;
114+ process . argv = [ 'node' , 'index.js' , '-p' , 'hello' ] ;
115+ try {
116+ expect ( isHeadlessMode ( ) ) . toBe ( true ) ;
117+ } finally {
118+ process . argv = originalArgv ;
119+ }
120+
121+ process . argv = [ 'node' , 'index.js' , '--prompt' , 'hello' ] ;
122+ try {
123+ expect ( isHeadlessMode ( ) ) . toBe ( true ) ;
124+ } finally {
125+ process . argv = originalArgv ;
126+ }
127+ } ) ;
128+
129+ it ( 'should return false if -y or --yolo is in process.argv as a fallback' , ( ) => {
130+ const originalArgv = process . argv ;
131+ process . argv = [ 'node' , 'index.js' , '-y' ] ;
132+ try {
133+ expect ( isHeadlessMode ( ) ) . toBe ( false ) ;
134+ } finally {
135+ process . argv = originalArgv ;
136+ }
137+
138+ process . argv = [ 'node' , 'index.js' , '--yolo' ] ;
139+ try {
140+ expect ( isHeadlessMode ( ) ) . toBe ( false ) ;
141+ } finally {
142+ process . argv = originalArgv ;
143+ }
144+ > >>> >>> d0c6a56c6 ( fix ( core ) : ensure -- yolo does not force headless mode ( #18976 ) )
106145 } ) ;
107146
108147 it ( 'should handle undefined process.stdout gracefully' , ( ) => {
0 commit comments