@@ -154,12 +154,21 @@ suite('Session Communication', () => {
154154 assert . ok ( createWebviewPanelSpy . calledWith ( 'r.standardPlot' ) , 'r.standardPlot should be triggered for svglite' ) ;
155155
156156 assert . ok ( session . activeSession , 'activeSession should be defined' ) ;
157- const svgliteResp = await session . sessionRequest ( session . activeSession . server , {
158- method : 'plot_latest' ,
159- params : { width : 800 , height : 600 , format : 'svglite' }
160- } ) as { data ?: string , format ?: string , error ?: unknown } ;
161157
162- assert . ok ( svgliteResp . data , 'svglite data should be returned' ) ;
158+ let svgliteResp : { data ?: string , format ?: string , error ?: unknown } | undefined ;
159+ await waitFor ( async ( ) => {
160+ try {
161+ svgliteResp = await session . sessionRequest ( session . activeSession ! . server , {
162+ method : 'plot_latest' ,
163+ params : { width : 800 , height : 600 , format : 'svglite' }
164+ } ) as { data ?: string , format ?: string , error ?: unknown } ;
165+ return svgliteResp && svgliteResp . data ;
166+ } catch ( e ) {
167+ return false ;
168+ }
169+ } , 15000 , 500 ) ;
170+
171+ assert . ok ( svgliteResp && svgliteResp . data , 'svglite data should be returned' ) ;
163172 assert . strictEqual ( svgliteResp . format , 'svglite' , 'format should be svglite' ) ;
164173
165174 // Reset history to ensure we track the next plot if we were to recreate the panel
@@ -177,12 +186,20 @@ suite('Session Communication', () => {
177186 await waitFor ( ( ) => createWebviewPanelSpy . calledWith ( 'r.standardPlot' ) , 10000 , 200 ) ;
178187 assert . ok ( createWebviewPanelSpy . calledWith ( 'r.standardPlot' ) , 'r.standardPlot should be active for png' ) ;
179188
180- const pngResp = await session . sessionRequest ( session . activeSession . server , {
181- method : 'plot_latest' ,
182- params : { width : 800 , height : 600 , format : 'png' }
183- } ) as { data ?: string , format ?: string } ;
189+ let pngResp : { data ?: string , format ?: string } | undefined ;
190+ await waitFor ( async ( ) => {
191+ try {
192+ pngResp = await session . sessionRequest ( session . activeSession ! . server , {
193+ method : 'plot_latest' ,
194+ params : { width : 800 , height : 600 , format : 'png' }
195+ } ) as { data ?: string , format ?: string } ;
196+ return pngResp && pngResp . data ;
197+ } catch ( e ) {
198+ return false ;
199+ }
200+ } , 15000 , 500 ) ;
184201
185- assert . ok ( pngResp . data , 'png data should be returned' ) ;
202+ assert . ok ( pngResp && pngResp . data , 'png data should be returned' ) ;
186203 assert . strictEqual ( pngResp . format , 'png' , 'format should be png' ) ;
187204
188205 // 3. Test View() -> dataview
0 commit comments