@@ -99,16 +99,50 @@ describe('isHeadlessMode', () => {
9999 expect ( isHeadlessMode ( { prompt : true } ) ) . toBe ( true ) ;
100100 } ) ;
101101
102- it ( 'should return false if query is provided but it is still a TTY' , ( ) => {
103- // Note: per current logic, query alone doesn't force headless if TTY
104- // This matches the existing behavior in packages/cli/src/config/config.ts
105- expect ( isHeadlessMode ( { query : 'test query' } ) ) . toBe ( false ) ;
102+ it ( 'should return true if query is provided' , ( ) => {
103+ expect ( isHeadlessMode ( { query : 'test query' } ) ) . toBe ( true ) ;
104+ } ) ;
105+
106+ it ( 'should return true if -p or --prompt is in process.argv as a fallback' , ( ) => {
107+ const originalArgv = process . argv ;
108+ process . argv = [ 'node' , 'index.js' , '-p' , 'hello' ] ;
109+ try {
110+ expect ( isHeadlessMode ( ) ) . toBe ( true ) ;
111+ } finally {
112+ process . argv = originalArgv ;
113+ }
114+
115+ process . argv = [ 'node' , 'index.js' , '--prompt' , 'hello' ] ;
116+ try {
117+ expect ( isHeadlessMode ( ) ) . toBe ( true ) ;
118+ } finally {
119+ process . argv = originalArgv ;
120+ }
121+ } ) ;
122+
123+ it ( 'should return true if -y or --yolo is in process.argv as a fallback' , ( ) => {
124+ const originalArgv = process . argv ;
125+ process . argv = [ 'node' , 'index.js' , '-y' ] ;
126+ try {
127+ expect ( isHeadlessMode ( ) ) . toBe ( true ) ;
128+ } finally {
129+ process . argv = originalArgv ;
130+ }
131+
132+ process . argv = [ 'node' , 'index.js' , '--yolo' ] ;
133+ try {
134+ expect ( isHeadlessMode ( ) ) . toBe ( true ) ;
135+ } finally {
136+ process . argv = originalArgv ;
137+ }
106138 } ) ;
107139
108140 it ( 'should handle undefined process.stdout gracefully' , ( ) => {
109141 const originalStdout = process . stdout ;
110- // @ts -expect-error - testing edge case
111- delete process . stdout ;
142+ Object . defineProperty ( process , 'stdout' , {
143+ value : undefined ,
144+ configurable : true ,
145+ } ) ;
112146
113147 try {
114148 expect ( isHeadlessMode ( ) ) . toBe ( false ) ;
@@ -122,8 +156,10 @@ describe('isHeadlessMode', () => {
122156
123157 it ( 'should handle undefined process.stdin gracefully' , ( ) => {
124158 const originalStdin = process . stdin ;
125- // @ts -expect-error - testing edge case
126- delete process . stdin ;
159+ Object . defineProperty ( process , 'stdin' , {
160+ value : undefined ,
161+ configurable : true ,
162+ } ) ;
127163
128164 try {
129165 expect ( isHeadlessMode ( ) ) . toBe ( false ) ;
0 commit comments