@@ -218,14 +218,17 @@ describe('Test gl plot side effects', function() {
218
218
it ( '@gl should fire *plotly_webglcontextlost* when on webgl context lost' , function ( done ) {
219
219
var _mock = Lib . extendDeep ( { } , require ( '@mocks/gl2d_12.json' ) ) ;
220
220
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
+
221
227
Plotly . plot ( gd , _mock ) . then ( function ( ) {
222
228
return new Promise ( function ( resolve , reject ) {
223
229
gd . once ( 'plotly_webglcontextlost' , resolve ) ;
224
230
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' ) ;
229
232
} ) ;
230
233
} )
231
234
. then ( function ( eventData ) {
@@ -236,16 +239,25 @@ describe('Test gl plot side effects', function() {
236
239
return new Promise ( function ( resolve , reject ) {
237
240
gd . once ( 'plotly_webglcontextlost' , resolve ) ;
238
241
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' ) ;
243
243
} ) ;
244
244
} )
245
245
. then ( function ( eventData ) {
246
246
expect ( ( eventData || { } ) . event ) . toBeDefined ( ) ;
247
247
expect ( ( eventData || { } ) . layer ) . toBe ( 'focusLayer' ) ;
248
248
} )
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
+ } )
249
261
. catch ( failTest )
250
262
. then ( done ) ;
251
263
} ) ;
0 commit comments