@@ -80,60 +80,56 @@ const runTest = async (pkg, cliArgs = [], logMessage = undefined, isSubPackage =
8080 } ) ;
8181} ;
8282
83- const runTestStdout = ( { packageName, cliArgs, logMessage, isSubPackage } = { } ) => {
83+ const runTestStdout = async ( { packageName, cliArgs, logMessage, isSubPackage } = { } ) => {
8484 // Simulate package missing
8585 swapPkgName ( packageName , isSubPackage ) ;
8686
87- return Promise . resolve ( )
88- . then ( ( ) => import ( "execa" ) )
89- . then ( ( { execa } ) =>
90- execa ( CLI_ENTRY_PATH , cliArgs , {
91- cwd : __dirname ,
92- } ) ,
93- )
94- . then ( ( proc ) => {
95- proc . stdin . setDefaultEncoding ( "utf8" ) ;
96-
97- return new Promise ( ( resolve ) => {
98- const timeout = setTimeout ( ( ) => {
99- console . log ( " timeout: killing process" ) ;
100- proc . kill ( ) ;
101- } , 60000 ) ;
102-
103- let hasPassed = false ;
104-
105- proc . stdout . on ( "data" , ( chunk ) => {
106- const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
107-
108- console . log ( ` stdout: ${ data } ` ) ;
109-
110- if ( data . includes ( logMessage ) ) {
111- hasPassed = true ;
112- proc . kill ( ) ;
113- }
114- } ) ;
115-
116- proc . stderr . on ( "data" , ( chunk ) => {
117- const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
118- console . log ( ` stderr: ${ data } ` ) ;
119- } ) ;
120-
121- proc . on ( "exit" , ( ) => {
122- swapPkgName ( `.${ packageName } ` , isSubPackage ) ;
123- clearTimeout ( timeout ) ;
124- resolve ( hasPassed ) ;
125- } ) ;
126-
127- proc . on ( "error" , ( ) => {
128- swapPkgName ( `.${ packageName } ` , isSubPackage ) ;
129- clearTimeout ( timeout ) ;
130- resolve ( false ) ;
131- } ) ;
132- } ) ;
87+ const { execa } = await import ( "execa" ) ;
88+ const proc = execa ( CLI_ENTRY_PATH , cliArgs , {
89+ cwd : __dirname ,
90+ } ) ;
91+
92+ proc . stdin . setDefaultEncoding ( "utf8" ) ;
93+
94+ return new Promise ( ( resolve ) => {
95+ const timeout = setTimeout ( ( ) => {
96+ console . log ( " timeout: killing process" ) ;
97+ proc . kill ( ) ;
98+ } , 60000 ) ;
99+
100+ let hasPassed = false ;
101+
102+ proc . stdout . on ( "data" , ( chunk ) => {
103+ const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
104+
105+ console . log ( ` stdout: ${ data } ` ) ;
106+
107+ if ( data . includes ( logMessage ) ) {
108+ hasPassed = true ;
109+ proc . kill ( ) ;
110+ }
133111 } ) ;
112+
113+ proc . stderr . on ( "data" , ( chunk ) => {
114+ const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
115+ console . log ( ` stderr: ${ data } ` ) ;
116+ } ) ;
117+
118+ proc . on ( "exit" , ( ) => {
119+ swapPkgName ( `.${ packageName } ` , isSubPackage ) ;
120+ clearTimeout ( timeout ) ;
121+ resolve ( hasPassed ) ;
122+ } ) ;
123+
124+ proc . on ( "error" , ( ) => {
125+ swapPkgName ( `.${ packageName } ` , isSubPackage ) ;
126+ clearTimeout ( timeout ) ;
127+ resolve ( false ) ;
128+ } ) ;
129+ } ) ;
134130} ;
135131
136- const runTestStdoutWithInput = ( {
132+ const runTestStdoutWithInput = async ( {
137133 packageName,
138134 cliArgs,
139135 inputs,
@@ -143,122 +139,113 @@ const runTestStdoutWithInput = ({
143139 // Simulate package missing
144140 swapPkgName ( packageName , isSubPackage ) ;
145141
146- return Promise . resolve ( )
147- . then ( ( ) => import ( "execa" ) )
148- . then ( ( { execa } ) =>
149- execa ( CLI_ENTRY_PATH , cliArgs , {
150- cwd : __dirname ,
151- } ) ,
152- )
153- . then ( ( proc ) => {
154- proc . stdin . setDefaultEncoding ( "utf8" ) ;
155-
156- return new Promise ( ( resolve ) => {
157- const timeout = setTimeout ( ( ) => {
158- console . log ( " timeout: killing process" ) ;
159- proc . kill ( ) ;
160- } , 300000 ) ;
161-
162- let hasPassed = false ;
163-
164- proc . stdout . on ( "data" , ( chunk ) => {
165- const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
166- console . log ( ` stdout: ${ data } ` ) ;
167-
168- if ( data . includes ( logMessage ) ) {
169- hasPassed = true ;
170- proc . kill ( ) ;
171- }
172-
173- for ( const input of Object . keys ( inputs ) ) {
174- if ( data . includes ( input ) ) {
175- proc . stdin . write ( inputs [ input ] ) ;
176- }
177- }
178- } ) ;
179-
180- proc . stderr . on ( "data" , ( chunk ) => {
181- const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
182- console . log ( ` stderr: ${ data } ` ) ;
183- } ) ;
184-
185- proc . on ( "exit" , ( ) => {
186- swapPkgName ( `.${ packageName } ` , isSubPackage ) ;
187- clearTimeout ( timeout ) ;
188- resolve ( hasPassed ) ;
189- } ) ;
190-
191- proc . on ( "error" , ( ) => {
192- swapPkgName ( `.${ packageName } ` , isSubPackage ) ;
193- clearTimeout ( timeout ) ;
194- resolve ( false ) ;
195- } ) ;
196- } ) ;
142+ const { execa } = await import ( "execa" ) ;
143+ const proc = execa ( CLI_ENTRY_PATH , cliArgs , {
144+ cwd : __dirname ,
145+ } ) ;
146+
147+ proc . stdin . setDefaultEncoding ( "utf8" ) ;
148+
149+ return new Promise ( ( resolve ) => {
150+ const timeout = setTimeout ( ( ) => {
151+ console . log ( " timeout: killing process" ) ;
152+ proc . kill ( ) ;
153+ } , 300000 ) ;
154+
155+ let hasPassed = false ;
156+
157+ proc . stdout . on ( "data" , ( chunk ) => {
158+ const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
159+ console . log ( ` stdout: ${ data } ` ) ;
160+
161+ if ( data . includes ( logMessage ) ) {
162+ hasPassed = true ;
163+ proc . kill ( ) ;
164+ }
165+
166+ for ( const input of Object . keys ( inputs ) ) {
167+ if ( data . includes ( input ) ) {
168+ proc . stdin . write ( inputs [ input ] ) ;
169+ }
170+ }
171+ } ) ;
172+
173+ proc . stderr . on ( "data" , ( chunk ) => {
174+ const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
175+ console . log ( ` stderr: ${ data } ` ) ;
176+ } ) ;
177+
178+ proc . on ( "exit" , ( ) => {
179+ swapPkgName ( `.${ packageName } ` , isSubPackage ) ;
180+ clearTimeout ( timeout ) ;
181+ resolve ( hasPassed ) ;
182+ } ) ;
183+
184+ proc . on ( "error" , ( ) => {
185+ swapPkgName ( `.${ packageName } ` , isSubPackage ) ;
186+ clearTimeout ( timeout ) ;
187+ resolve ( false ) ;
197188 } ) ;
189+ } ) ;
198190} ;
199191
200- const runTestWithHelp = ( pkg , cliArgs = [ ] , logMessage = undefined , isSubPackage = false ) => {
192+ const runTestWithHelp = async ( pkg , cliArgs = [ ] , logMessage = undefined , isSubPackage = false ) => {
201193 // Simulate package missing
202194 swapPkgName ( pkg , isSubPackage ) ;
203195
204- return Promise . resolve ( )
205- . then ( ( ) => import ( "execa" ) )
206- . then ( ( { execa } ) =>
207- execa ( CLI_ENTRY_PATH , cliArgs , {
208- cwd : __dirname ,
209- } ) ,
210- )
211- . then ( ( proc ) => {
212- proc . stdin . setDefaultEncoding ( "utf8" ) ;
213-
214- proc . stdout . on ( "data" , ( chunk ) => {
215- console . log ( ` stdout: ${ chunk . toString ( ) } ` ) ;
216- } ) ;
217-
218- return new Promise ( ( resolve ) => {
219- const timeout = setTimeout ( ( ) => {
220- console . log ( " timeout: killing process" ) ;
221- proc . kill ( ) ;
222- } , 30000 ) ;
223-
224- const undefinedLogMessage = "Can't find and load command" ;
225-
226- let hasLogMessage = false ;
227- let hasUndefinedLogMessage = false ;
228- let hasPassed = false ;
229-
230- proc . stderr . on ( "data" , ( chunk ) => {
231- const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
232-
233- console . log ( ` stderr: ${ data } ` ) ;
234-
235- if ( data . includes ( logMessage ) ) {
236- hasLogMessage = true ;
237- }
238-
239- if ( data . includes ( undefinedLogMessage ) ) {
240- hasUndefinedLogMessage = true ;
241- }
242-
243- if ( hasLogMessage || hasUndefinedLogMessage ) {
244- hasPassed = true ;
245- proc . kill ( ) ;
246- }
247- } ) ;
248-
249- proc . on ( "exit" , ( ) => {
250- swapPkgName ( `.${ pkg } ` , isSubPackage ) ;
251- clearTimeout ( timeout ) ;
252- resolve ( hasPassed ) ;
253- } ) ;
254-
255- proc . on ( "error" , ( ) => {
256- swapPkgName ( `.${ pkg } ` , isSubPackage ) ;
257- clearTimeout ( timeout ) ;
258- resolve ( false ) ;
259- } ) ;
260- } ) ;
196+ const { execa } = await import ( "execa" ) ;
197+ const proc = execa ( CLI_ENTRY_PATH , cliArgs , {
198+ cwd : __dirname ,
199+ } ) ;
200+
201+ proc . stdin . setDefaultEncoding ( "utf8" ) ;
202+ proc . stdout . on ( "data" , ( chunk ) => {
203+ console . log ( ` stdout: ${ chunk . toString ( ) } ` ) ;
204+ } ) ;
205+
206+ return new Promise ( ( resolve ) => {
207+ const timeout = setTimeout ( ( ) => {
208+ console . log ( " timeout: killing process" ) ;
209+ proc . kill ( ) ;
210+ } , 30000 ) ;
211+
212+ const undefinedLogMessage = "Can't find and load command" ;
213+
214+ let hasLogMessage = false ;
215+ let hasUndefinedLogMessage = false ;
216+ let hasPassed = false ;
217+
218+ proc . stderr . on ( "data" , ( chunk ) => {
219+ const data = stripVTControlCharacters ( chunk . toString ( ) ) ;
220+
221+ console . log ( ` stderr: ${ data } ` ) ;
222+
223+ if ( data . includes ( logMessage ) ) {
224+ hasLogMessage = true ;
225+ }
226+
227+ if ( data . includes ( undefinedLogMessage ) ) {
228+ hasUndefinedLogMessage = true ;
229+ }
230+
231+ if ( hasLogMessage || hasUndefinedLogMessage ) {
232+ hasPassed = true ;
233+ proc . kill ( ) ;
234+ }
235+ } ) ;
236+
237+ proc . on ( "exit" , ( ) => {
238+ swapPkgName ( `.${ pkg } ` , isSubPackage ) ;
239+ clearTimeout ( timeout ) ;
240+ resolve ( hasPassed ) ;
261241 } ) ;
242+
243+ proc . on ( "error" , ( ) => {
244+ swapPkgName ( `.${ pkg } ` , isSubPackage ) ;
245+ clearTimeout ( timeout ) ;
246+ resolve ( false ) ;
247+ } ) ;
248+ } ) ;
262249} ;
263250
264251module . exports = {
0 commit comments