@@ -1102,7 +1102,9 @@ describe('dockviewComponent', () => {
1102
1102
disposable . dispose ( ) ;
1103
1103
} ) ;
1104
1104
1105
- test ( 'events flow' , ( ) => {
1105
+ test ( 'events flow' , async ( ) => {
1106
+ window . open = ( ) => setupMockWindow ( ) ;
1107
+
1106
1108
dockview . layout ( 1000 , 1000 ) ;
1107
1109
1108
1110
let events : {
@@ -1295,7 +1297,42 @@ describe('dockviewComponent', () => {
1295
1297
expect ( dockview . size ) . toBe ( 0 ) ;
1296
1298
expect ( dockview . totalPanels ) . toBe ( 0 ) ;
1297
1299
1300
+ events = [ ] ;
1301
+
1302
+ const panel8 = dockview . addPanel ( {
1303
+ id : 'panel8' ,
1304
+ component : 'default' ,
1305
+ } ) ;
1306
+ const panel9 = dockview . addPanel ( {
1307
+ id : 'panel9' ,
1308
+ component : 'default' ,
1309
+ floating : true ,
1310
+ } ) ;
1311
+ const panel10 = dockview . addPanel ( {
1312
+ id : 'panel10' ,
1313
+ component : 'default' ,
1314
+ } ) ;
1315
+
1316
+ expect ( await dockview . addPopoutGroup ( panel10 ) ) . toBeTruthy ( ) ;
1317
+
1318
+ expect ( events ) . toEqual ( [
1319
+ { type : 'ADD_GROUP' , group : panel8 . group } ,
1320
+ { type : 'ADD_PANEL' , panel : panel8 } ,
1321
+ { type : 'ACTIVE_GROUP' , group : panel8 . group } ,
1322
+ { type : 'ACTIVE_PANEL' , panel : panel8 } ,
1323
+ { type : 'ADD_GROUP' , group : panel9 . group } ,
1324
+ { type : 'ADD_PANEL' , panel : panel9 } ,
1325
+ { type : 'ACTIVE_GROUP' , group : panel9 . group } ,
1326
+ { type : 'ACTIVE_PANEL' , panel : panel9 } ,
1327
+ { type : 'ADD_PANEL' , panel : panel10 } ,
1328
+ { type : 'ACTIVE_PANEL' , panel : panel10 } ,
1329
+ { type : 'ADD_GROUP' , group : panel10 . group } ,
1330
+ ] ) ;
1331
+
1332
+ events = [ ] ;
1298
1333
disposable . dispose ( ) ;
1334
+
1335
+ expect ( events . length ) . toBe ( 0 ) ;
1299
1336
} ) ;
1300
1337
1301
1338
test ( 'that removing a panel from a group reflects in the dockviewcomponent when searching for a panel' , ( ) => {
@@ -5696,6 +5733,42 @@ describe('dockviewComponent', () => {
5696
5733
} ,
5697
5734
] ) ;
5698
5735
} ) ;
5736
+
5737
+ test ( 'dispose of dockview instance when popup is open' , async ( ) => {
5738
+ const container = document . createElement ( 'div' ) ;
5739
+
5740
+ window . open = ( ) => setupMockWindow ( ) ;
5741
+
5742
+ const dockview = new DockviewComponent ( container , {
5743
+ createComponent ( options ) {
5744
+ switch ( options . name ) {
5745
+ case 'default' :
5746
+ return new PanelContentPartTest (
5747
+ options . id ,
5748
+ options . name
5749
+ ) ;
5750
+ default :
5751
+ throw new Error ( `unsupported` ) ;
5752
+ }
5753
+ } ,
5754
+ } ) ;
5755
+
5756
+ dockview . layout ( 1000 , 500 ) ;
5757
+
5758
+ dockview . addPanel ( {
5759
+ id : 'panel_1' ,
5760
+ component : 'default' ,
5761
+ } ) ;
5762
+
5763
+ const panel2 = dockview . addPanel ( {
5764
+ id : 'panel_2' ,
5765
+ component : 'default' ,
5766
+ } ) ;
5767
+
5768
+ expect ( await dockview . addPopoutGroup ( panel2 . group ) ) . toBeTruthy ( ) ;
5769
+
5770
+ dockview . dispose ( ) ;
5771
+ } ) ;
5699
5772
} ) ;
5700
5773
5701
5774
describe ( 'maximized group' , ( ) => {
0 commit comments