@@ -5,7 +5,7 @@ import { emptyMutex, RuntimeContext, RuntimeLang } from "./runtime";
55export function defineTests (
66 lang : RuntimeLang ,
77 runtimeRef : RefObject < Record < RuntimeLang , RuntimeContext > > ,
8- writeFile : ( name : string , content : string ) => void
8+ filesRef : RefObject < Readonly < Record < string , string > > > ,
99) {
1010 describe ( `${ lang } Runtime` , function ( ) {
1111 this . timeout (
@@ -136,7 +136,6 @@ export function defineTests(
136136 while ( ! runtimeRef . current [ lang ] . ready ) {
137137 await new Promise ( ( resolve ) => setTimeout ( resolve , 100 ) ) ;
138138 }
139- await new Promise ( ( resolve ) => setTimeout ( resolve , 100 ) ) ;
140139 const result = await (
141140 runtimeRef . current [ lang ] . mutex || emptyMutex
142141 ) . runExclusive ( ( ) =>
@@ -169,10 +168,7 @@ export function defineTests(
169168 if ( ! filename || ! code ) {
170169 this . skip ( ) ;
171170 }
172- writeFile ( filename , code ) ;
173- // use setTimeout to wait for writeFile to propagate.
174- await new Promise ( ( resolve ) => setTimeout ( resolve , 100 ) ) ;
175- const result = await runtimeRef . current [ lang ] . runFiles ( [ filename ] ) ;
171+ const result = await runtimeRef . current [ lang ] . runFiles ( [ filename ] , { [ filename ] : code } ) ;
176172 console . log ( `${ lang } single file stdout test: ` , result ) ;
177173 expect ( result ) . to . be . deep . equal ( [
178174 {
@@ -198,9 +194,7 @@ export function defineTests(
198194 if ( ! filename || ! code ) {
199195 this . skip ( ) ;
200196 }
201- writeFile ( filename , code ) ;
202- await new Promise ( ( resolve ) => setTimeout ( resolve , 100 ) ) ;
203- const result = await runtimeRef . current [ lang ] . runFiles ( [ filename ] ) ;
197+ const result = await runtimeRef . current [ lang ] . runFiles ( [ filename ] , { [ filename ] : code } ) ;
204198 console . log ( `${ lang } single file error capture test: ` , result ) ;
205199 // eslint-disable-next-line @typescript-eslint/no-unused-expressions
206200 expect ( result . filter ( ( r ) => r . message . includes ( errorMsg ) ) ) . to . not . be
@@ -245,11 +239,7 @@ export function defineTests(
245239 if ( ! codes || ! execFiles ) {
246240 this . skip ( ) ;
247241 }
248- for ( const [ filename , code ] of Object . entries ( codes ) ) {
249- writeFile ( filename , code ) ;
250- }
251- await new Promise ( ( resolve ) => setTimeout ( resolve , 100 ) ) ;
252- const result = await runtimeRef . current [ lang ] . runFiles ( execFiles ) ;
242+ const result = await runtimeRef . current [ lang ] . runFiles ( execFiles , codes ) ;
253243 console . log ( `${ lang } multifile stdout test: ` , result ) ;
254244 expect ( result ) . to . be . deep . equal ( [
255245 {
0 commit comments