@@ -32,6 +32,32 @@ function captureOutput() {
32
32
}
33
33
}
34
34
35
+ function printTestSummary ( results ) {
36
+ const label = '--- Test Summary ---'
37
+ console . log ( `\n${ label } ` )
38
+ for ( const [ appPath , result ] of results ) {
39
+ let emoji
40
+ switch ( result ) {
41
+ case 'Passed' :
42
+ emoji = '✅'
43
+ break
44
+ case 'Failed' :
45
+ emoji = '❌'
46
+ break
47
+ case 'Error' :
48
+ emoji = '💥'
49
+ break
50
+ case 'Incomplete' :
51
+ emoji = '⏳'
52
+ break
53
+ default :
54
+ emoji = '❓'
55
+ }
56
+ console . log ( `${ emoji } ${ appPath } ` )
57
+ }
58
+ console . log ( `${ '-' . repeat ( label . length ) } \n` )
59
+ }
60
+
35
61
async function main ( ) {
36
62
const allApps = await getApps ( )
37
63
@@ -128,6 +154,7 @@ async function main() {
128
154
let hasFailures = false
129
155
const runningProcesses = new Map ( )
130
156
let isShuttingDown = false
157
+ const results = new Map ( )
131
158
132
159
const shutdownHandler = ( ) => {
133
160
if ( isShuttingDown ) return
@@ -142,7 +169,12 @@ async function main() {
142
169
} else {
143
170
console . log ( `ℹ️ No output captured for ${ app . relativePath } ` )
144
171
}
172
+ // Set result for incomplete tests
173
+ if ( ! results . has ( app . relativePath ) ) {
174
+ results . set ( app . relativePath , 'Incomplete' )
175
+ }
145
176
}
177
+ printTestSummary ( results )
146
178
// Allow some time for output to be written before exiting
147
179
setTimeout ( ( ) => process . exit ( 1 ) , 100 )
148
180
}
@@ -182,8 +214,10 @@ async function main() {
182
214
console . error ( `\n❌ Tests failed for ${ app . relativePath } :\n\n` )
183
215
output . replay ( )
184
216
console . log ( '\n\n' )
217
+ results . set ( app . relativePath , 'Failed' )
185
218
} else {
186
219
console . log ( `✅ Finished tests for ${ app . relativePath } ` )
220
+ results . set ( app . relativePath , 'Passed' )
187
221
}
188
222
} catch ( error ) {
189
223
runningProcesses . delete ( app )
@@ -194,12 +228,16 @@ async function main() {
194
228
console . error ( error . message )
195
229
output . replay ( )
196
230
console . log ( '\n\n' )
231
+ results . set ( app . relativePath , 'Error' ) // Add this line
197
232
}
198
233
} ) ,
199
234
)
200
235
201
236
await Promise . all ( tasks )
202
237
238
+ // Print summary output
239
+ printTestSummary ( results )
240
+
203
241
if ( hasFailures ) {
204
242
process . exit ( 1 )
205
243
}
0 commit comments