@@ -91,6 +91,52 @@ describe('TauriWorkerService', () => {
9191
9292 expect ( firstExecute ) . toBe ( secondExecute ) ;
9393 } ) ;
94+
95+ it ( 'should wrap string scripts in IIFE for non-embedded providers' , ( ) => {
96+ const mockExecute = vi . fn ( ) . mockResolvedValue ( undefined ) ;
97+ const mockBrowser = createMockBrowser ( { execute : mockExecute } ) ;
98+ const service = new TauriWorkerService ( { driverProvider : 'official' } , { 'wdio:tauriServiceOptions' : { } } ) ;
99+
100+ ( service as any ) . patchBrowserExecute ( mockBrowser ) ;
101+ mockBrowser . execute ( 'return document.title' ) ;
102+
103+ expect ( mockExecute ) . toHaveBeenCalledWith ( expect . stringContaining ( '(async () => return document.title)()' ) ) ;
104+ } ) ;
105+
106+ it ( 'should pass function scripts as-is for non-embedded providers' , ( ) => {
107+ const mockExecute = vi . fn ( ) . mockResolvedValue ( undefined ) ;
108+ const mockBrowser = createMockBrowser ( { execute : mockExecute } ) ;
109+ const service = new TauriWorkerService ( { driverProvider : 'official' } , { 'wdio:tauriServiceOptions' : { } } ) ;
110+
111+ ( service as any ) . patchBrowserExecute ( mockBrowser ) ;
112+ const testFn = ( a : number , b : number ) => a + b ;
113+ mockBrowser . execute ( testFn as any , 1 , 2 ) ;
114+
115+ expect ( mockExecute ) . toHaveBeenCalledWith ( expect . stringContaining ( '(a, b) => a + b' ) , 1 , 2 ) ;
116+ } ) ;
117+
118+ it ( 'should pass string scripts as-is for embedded provider' , ( ) => {
119+ const mockExecute = vi . fn ( ) . mockResolvedValue ( undefined ) ;
120+ const mockBrowser = createMockBrowser ( { execute : mockExecute } ) ;
121+ const service = new TauriWorkerService ( { driverProvider : 'embedded' } , { 'wdio:tauriServiceOptions' : { } } ) ;
122+
123+ ( service as any ) . patchBrowserExecute ( mockBrowser ) ;
124+ mockBrowser . execute ( 'return document.title' ) ;
125+
126+ expect ( mockExecute ) . toHaveBeenCalledWith ( 'return document.title' ) ;
127+ } ) ;
128+
129+ it ( 'should pass function scripts as-is for embedded provider' , ( ) => {
130+ const mockExecute = vi . fn ( ) . mockResolvedValue ( undefined ) ;
131+ const mockBrowser = createMockBrowser ( { execute : mockExecute } ) ;
132+ const service = new TauriWorkerService ( { driverProvider : 'embedded' } , { 'wdio:tauriServiceOptions' : { } } ) ;
133+
134+ ( service as any ) . patchBrowserExecute ( mockBrowser ) ;
135+ const testFn = ( a : number , b : number ) => a + b ;
136+ mockBrowser . execute ( testFn as any , 1 , 2 ) ;
137+
138+ expect ( mockExecute ) . toHaveBeenCalledWith ( expect . stringContaining ( '(a, b) => a + b' ) , 1 , 2 ) ;
139+ } ) ;
94140 } ) ;
95141
96142 describe ( 'before()' , ( ) => {
0 commit comments