11import * as path from 'node:path' ;
22import { ChildProcess , spawn , spawnSync } from 'node:child_process' ;
3+ import { createInterface } from 'node:readline' ;
34
45import { defineConfig } from 'vitest/config' ;
5- import { preview } from '@vitest/browser-preview'
6+ import { preview } from '@vitest/browser-preview' ;
67import { BrowserProvider } from 'vitest/node' ;
78
89// We can't define serverFactory ourselves because vitest doesn't export the building blocks,
@@ -27,7 +28,7 @@ class TauriBrowserProvider implements BrowserProvider {
2728 return { } ;
2829 }
2930
30- async openPage ( _sessionId : string , url : string , _options : { parallel : boolean ; } ) {
31+ async openPage ( _sessionId : string , url : string , _options : { parallel : boolean } ) {
3132 if ( this . #tauriApp != null ) {
3233 throw new Error ( 'TODO: Calling openPage multiple times is not supported' ) ;
3334 }
@@ -47,9 +48,18 @@ class TauriBrowserProvider implements BrowserProvider {
4748 }
4849 } ) ;
4950
51+ createInterface ( app . stdout ) . on ( 'line' , ( line ) => console . log ( `[Test process]: ${ line } ` ) ) ;
52+ createInterface ( app . stderr ) . on ( 'line' , ( line ) => console . error ( `[Test process]: ${ line } ` ) ) ;
53+
5054 await new Promise < void > ( ( resolve , reject ) => {
51- app . once ( 'spawn' , ( ) => resolve ( ) ) ;
52- app . once ( 'error' , reject ) ;
55+ app . once ( 'spawn' , ( ) => {
56+ console . info ( `Child process spawned, pid ${ app . pid } ` ) ;
57+ resolve ( ) ;
58+ } ) ;
59+ app . once ( 'error' , ( e ) => {
60+ console . error ( 'Failed to spawn child process' , e ) ;
61+ reject ( e ) ;
62+ } ) ;
5363 } ) ;
5464 }
5565
@@ -78,6 +88,6 @@ export default defineConfig({
7888 browser : 'chrome'
7989 }
8090 ]
81- } ,
91+ }
8292 }
8393} ) ;
0 commit comments