@@ -117,6 +117,23 @@ class MockSetup {
117117
118118suite ( 'e3-testsuite' , function ( ) {
119119 this . beforeAll ( async function ( ) {
120+ /**
121+ * Remove 'json-logs' flag from E3_ENABLE_FEATURE because it can change
122+ * the log output format of e3-testsuite
123+ */
124+ if ( 'E3_ENABLE_FEATURE' in process . env ) {
125+ const flags = process . env . E3_ENABLE_FEATURE ! . split ( ',' ) ;
126+ const index = flags . indexOf ( 'json-logs' ) ;
127+ if ( index !== - 1 ) {
128+ flags . splice ( index , 1 ) ;
129+ if ( flags . length > 0 ) {
130+ process . env . E3_ENABLE_FEATURE = flags . join ( ',' ) ;
131+ } else {
132+ delete process . env . E3_ENABLE_FEATURE ;
133+ }
134+ }
135+ }
136+
120137 await activate ( ) ;
121138 } ) ;
122139
@@ -349,28 +366,33 @@ suite('e3-testsuite', function () {
349366
350367 // Check for expected test results (order-independent)
351368 const expectedResults = [
352- 'INFO FAIL 06-test-with-diff: Failure short message' ,
353- 'INFO PASS 01-test-one-result' ,
354- 'INFO PASS 04-test-only-passing-sub-results.sub3' ,
355- 'INFO PASS 04-test-only-passing-sub-results.sub2' ,
356- 'INFO PASS 04-test-only-passing-sub-results.sub1' ,
357- 'INFO PASS 05-test-only-sub-results-one-failing.sub3' ,
358- 'INFO FAIL 05-test-only-sub-results-one-failing.sub2' ,
359- 'INFO PASS 05-test-only-sub-results-one-failing.sub1' ,
360- 'INFO PASS 03-test-multiple-passing-results' ,
361- 'INFO PASS 03-test-multiple-passing-results.sub3' ,
362- 'INFO PASS 03-test-multiple-passing-results.sub2' ,
363- 'INFO PASS 03-test-multiple-passing-results.sub1' ,
364- 'INFO PASS 02-test-multiple-results' ,
365- 'INFO FAIL 02-test-multiple-results.sub3: Failure message' ,
366- 'INFO FAIL 02-test-multiple-results.sub2: Failure message' ,
367- 'INFO PASS 02-test-multiple-results.sub1' ,
369+ 'FAIL 06-test-with-diff: Failure short message' ,
370+ 'PASS 01-test-one-result' ,
371+ 'PASS 04-test-only-passing-sub-results.sub3' ,
372+ 'PASS 04-test-only-passing-sub-results.sub2' ,
373+ 'PASS 04-test-only-passing-sub-results.sub1' ,
374+ 'PASS 05-test-only-sub-results-one-failing.sub3' ,
375+ 'FAIL 05-test-only-sub-results-one-failing.sub2' ,
376+ 'PASS 05-test-only-sub-results-one-failing.sub1' ,
377+ 'PASS 03-test-multiple-passing-results' ,
378+ 'PASS 03-test-multiple-passing-results.sub3' ,
379+ 'PASS 03-test-multiple-passing-results.sub2' ,
380+ 'PASS 03-test-multiple-passing-results.sub1' ,
381+ 'PASS 02-test-multiple-results' ,
382+ 'FAIL 02-test-multiple-results.sub3: Failure message' ,
383+ 'FAIL 02-test-multiple-results.sub2: Failure message' ,
384+ 'PASS 02-test-multiple-results.sub1' ,
368385 ] ;
369386
370387 for ( const result of expectedResults ) {
388+ // Replace all runs of spaces with \s+ for regex matching. This
389+ // provides robustness to minor formatting changes
390+ const regexStr = result . replace ( / + / g, '\\s+' ) ;
391+ const regex = new RegExp ( regexStr ) ;
371392 assert . ok (
372- consoleOutput . includes ( result ) ,
373- `Expected result not found: ${ result } \nActual console output: ${ consoleOutput } ` ,
393+ regex . test ( consoleOutput ) ,
394+ `Expected result not found (regex: ${ regexStr } ): ${ result } \n` +
395+ `Actual console output: ${ consoleOutput } ` ,
374396 ) ;
375397 }
376398
0 commit comments