@@ -621,4 +621,47 @@ suite('ViewDescriptorService', () => {
621621 assert . deepStrictEqual ( actual , viewsCustomizations ) ;
622622 } ) ;
623623
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+
624667} ) ;
0 commit comments