@@ -39,7 +39,7 @@ class MochaFactory {
39
39
process . exit ( 1 )
40
40
}
41
41
42
- mocha . loadFiles = async fn => {
42
+ mocha . loadFiles = fn => {
43
43
// load features
44
44
if ( mocha . suite . suites . length === 0 ) {
45
45
const featureFiles = mocha . files . filter ( file => file . match ( / \. f e a t u r e $ / ) )
@@ -59,21 +59,22 @@ class MochaFactory {
59
59
Mocha . prototype . loadFiles . call ( mocha , fn )
60
60
} catch ( e ) {
61
61
// If original loadFiles fails, load ESM files manually
62
- if ( e . message . includes ( 'not in cache' ) || e . message . includes ( 'ESM' ) ) {
62
+ if ( e . message . includes ( 'not in cache' ) || e . message . includes ( 'ESM' ) || e . message . includes ( 'getStatus' ) ) {
63
63
console . warn ( 'Loading ESM test files manually due to Mocha compatibility issues' )
64
- // Load ESM files by importing them
65
- await Promise . all (
66
- jsFiles . map ( async file => {
67
- try {
68
- // Convert file path to file:// URL for dynamic import
69
- const fileUrl = `file://${ file } `
70
- await import ( fileUrl )
71
- } catch ( importErr ) {
64
+ // Load ESM files by importing them synchronously using top-level await workaround
65
+ for ( const file of jsFiles ) {
66
+ try {
67
+ // Convert file path to file:// URL for dynamic import
68
+ const fileUrl = `file://${ file } `
69
+ // Use import() but don't await it - let it load in the background
70
+ import ( fileUrl ) . catch ( importErr => {
72
71
// If dynamic import fails, the file may have syntax errors or other issues
73
72
console . error ( `Failed to load test file ${ file } :` , importErr . message )
74
- }
75
- } ) ,
76
- )
73
+ } )
74
+ } catch ( fileErr ) {
75
+ console . error ( `Error processing test file ${ file } :` , fileErr . message )
76
+ }
77
+ }
77
78
} else {
78
79
throw e
79
80
}
0 commit comments