@@ -272,6 +272,59 @@ describe('dockviewComponent', () => {
272
272
} ) ;
273
273
274
274
describe ( 'move group' , ( ) => {
275
+ test ( 'that moving a popup group into the grid manages view disposals correctly' , async ( ) => {
276
+ window . open = ( ) => setupMockWindow ( ) ;
277
+
278
+ dockview = new DockviewComponent ( container , {
279
+ createComponent ( options ) {
280
+ switch ( options . name ) {
281
+ case 'default' :
282
+ return new PanelContentPartTest (
283
+ options . id ,
284
+ options . name
285
+ ) ;
286
+ default :
287
+ throw new Error ( `unsupported` ) ;
288
+ }
289
+ } ,
290
+ } ) ;
291
+
292
+ dockview . layout ( 600 , 1000 ) ;
293
+
294
+ const panel1 = dockview . addPanel ( {
295
+ id : 'panel1' ,
296
+ component : 'default' ,
297
+ } ) ;
298
+ const panel2 = dockview . addPanel ( {
299
+ id : 'panel2' ,
300
+ component : 'default' ,
301
+ position : { direction : 'right' } ,
302
+ } ) ;
303
+ const panel3 = dockview . addPanel ( {
304
+ id : 'panel3' ,
305
+ component : 'default' ,
306
+ position : { direction : 'right' } ,
307
+ } ) ;
308
+
309
+ await dockview . addPopoutGroup ( panel1 . api . group ) ;
310
+
311
+ expect ( panel1 . api . location . type ) . toBe ( 'popout' ) ;
312
+ expect ( dockview . groups . length ) . toBe ( 4 ) ;
313
+ expect ( dockview . panels . length ) . toBe ( 3 ) ;
314
+
315
+ panel1 . api . group . api . moveTo ( {
316
+ group : panel2 . api . group ,
317
+ position : 'left' ,
318
+ } ) ;
319
+
320
+ expect ( panel1 . api . location . type ) . toBe ( 'grid' ) ;
321
+ expect ( dockview . groups . length ) . toBe ( 3 ) ;
322
+ expect ( dockview . panels . length ) . toBe ( 3 ) ;
323
+
324
+ const query = dockview . element . querySelectorAll ( '.dv-view' ) ;
325
+ expect ( query . length ) . toBe ( 3 ) ;
326
+ } ) ;
327
+
275
328
test ( 'horizontal' , ( ) => {
276
329
dockview = new DockviewComponent ( container , {
277
330
createComponent ( options ) {
0 commit comments