@@ -621,4 +621,47 @@ suite('ViewDescriptorService', () => {
621
621
assert . deepStrictEqual ( actual , viewsCustomizations ) ;
622
622
} ) ;
623
623
624
+ test ( 'storage change also updates locations even if views do not exists and views are registered later' , async function ( ) {
625
+ const storageService = instantiationService . get ( IStorageService ) ;
626
+ const testObject = aViewDescriptorService ( ) ;
627
+
628
+ const generateViewContainerId = `workbench.views.service.${ ViewContainerLocationToString ( ViewContainerLocation . AuxiliaryBar ) } .${ generateUuid ( ) } ` ;
629
+ const viewsCustomizations = {
630
+ viewContainerLocations : {
631
+ [ generateViewContainerId ] : ViewContainerLocation . AuxiliaryBar ,
632
+ } ,
633
+ viewLocations : {
634
+ 'view1' : generateViewContainerId
635
+ }
636
+ } ;
637
+ storageService . store ( 'views.customizations' , JSON . stringify ( viewsCustomizations ) , StorageScope . PROFILE , StorageTarget . USER ) ;
638
+
639
+ const viewContainer = ViewContainersRegistry . registerViewContainer ( { id : `${ viewContainerIdPrefix } -${ generateUuid ( ) } ` , title : 'test' , ctorDescriptor : new SyncDescriptor ( < any > { } ) } , ViewContainerLocation . Sidebar ) ;
640
+ const viewDescriptors : IViewDescriptor [ ] = [
641
+ {
642
+ id : 'view1' ,
643
+ ctorDescriptor : null ! ,
644
+ name : 'Test View 1' ,
645
+ canMoveView : true
646
+ } ,
647
+ {
648
+ id : 'view2' ,
649
+ ctorDescriptor : null ! ,
650
+ name : 'Test View 2' ,
651
+ canMoveView : true
652
+ }
653
+ ] ;
654
+ ViewsRegistry . registerViews ( viewDescriptors , viewContainer ) ;
655
+
656
+ testObject . onDidRegisterExtensions ( ) ;
657
+
658
+ const viewContainer1Views = testObject . getViewContainerModel ( viewContainer ) ;
659
+ assert . deepStrictEqual ( viewContainer1Views . allViewDescriptors . map ( v => v . id ) , [ 'view2' ] ) ;
660
+
661
+ const generateViewContainer = testObject . getViewContainerById ( generateViewContainerId ) ! ;
662
+ assert . deepStrictEqual ( testObject . getViewContainerLocation ( generateViewContainer ) , ViewContainerLocation . AuxiliaryBar ) ;
663
+ const generatedViewContainerModel = testObject . getViewContainerModel ( generateViewContainer ) ;
664
+ assert . deepStrictEqual ( generatedViewContainerModel . allViewDescriptors . map ( v => v . id ) , [ 'view1' ] ) ;
665
+ } ) ;
666
+
624
667
} ) ;
0 commit comments