@@ -218,14 +218,17 @@ describe('Test gl plot side effects', function() {
218218 it ( '@gl should fire *plotly_webglcontextlost* when on webgl context lost' , function ( done ) {
219219 var _mock = Lib . extendDeep ( { } , require ( '@mocks/gl2d_12.json' ) ) ;
220220
221+ function _trigger ( name ) {
222+ var ev = new window . WebGLContextEvent ( 'webglcontextlost' ) ;
223+ var canvas = gd . querySelector ( '.gl-canvas-' + name ) ;
224+ canvas . dispatchEvent ( ev ) ;
225+ }
226+
221227 Plotly . plot ( gd , _mock ) . then ( function ( ) {
222228 return new Promise ( function ( resolve , reject ) {
223229 gd . once ( 'plotly_webglcontextlost' , resolve ) ;
224230 setTimeout ( reject , 10 ) ;
225-
226- var ev = new window . WebGLContextEvent ( 'webglcontextlost' ) ;
227- var canvas = gd . querySelector ( '.gl-canvas-context' ) ;
228- canvas . dispatchEvent ( ev ) ;
231+ _trigger ( 'context' ) ;
229232 } ) ;
230233 } )
231234 . then ( function ( eventData ) {
@@ -236,16 +239,25 @@ describe('Test gl plot side effects', function() {
236239 return new Promise ( function ( resolve , reject ) {
237240 gd . once ( 'plotly_webglcontextlost' , resolve ) ;
238241 setTimeout ( reject , 10 ) ;
239-
240- var ev = new window . WebGLContextEvent ( 'webglcontextlost' ) ;
241- var canvas = gd . querySelector ( '.gl-canvas-focus' ) ;
242- canvas . dispatchEvent ( ev ) ;
242+ _trigger ( 'focus' ) ;
243243 } ) ;
244244 } )
245245 . then ( function ( eventData ) {
246246 expect ( ( eventData || { } ) . event ) . toBeDefined ( ) ;
247247 expect ( ( eventData || { } ) . layer ) . toBe ( 'focusLayer' ) ;
248248 } )
249+ . then ( function ( ) {
250+ return new Promise ( function ( resolve , reject ) {
251+ gd . once ( 'plotly_webglcontextlost' , reject ) ;
252+ setTimeout ( resolve , 10 ) ;
253+ _trigger ( 'pick' ) ;
254+ } ) ;
255+ } )
256+ . then ( function ( eventData ) {
257+ // should add event listener on pick canvas which
258+ // isn't used for scattergl traces
259+ expect ( eventData ) . toBeUndefined ( ) ;
260+ } )
249261 . catch ( failTest )
250262 . then ( done ) ;
251263 } ) ;
0 commit comments