@@ -556,6 +556,88 @@ describe('Workspace plugin', () => {
556556 expect ( coreStart . chrome . globalSearch . unregisterSearchCommand ) . toBeCalledWith ( 'pagesSearch' ) ;
557557 } ) ;
558558
559+ it ( '#start should update collaboratorsAppUpdater correctly if permission enabled' , async ( ) => {
560+ const workspacePlugin = new WorkspacePlugin ( ) ;
561+ const setupMock = getSetupMock ( ) ;
562+ const coreStart = coreMock . createStart ( ) ;
563+ await workspacePlugin . setup ( setupMock , { } ) ;
564+
565+ const appUpdaterSpy = jest . spyOn ( ( workspacePlugin as any ) . collaboratorsAppUpdater$ , 'next' ) ;
566+
567+ const startMock = {
568+ ...coreStart ,
569+ chrome : {
570+ ...coreStart . chrome ,
571+ navGroup : {
572+ ...coreStart . chrome . navGroup ,
573+ getNavGroupEnabled : jest . fn ( ) . mockReturnValue ( true ) ,
574+ } ,
575+ } ,
576+ application : {
577+ ...coreStart . application ,
578+ capabilities : {
579+ ...coreStart . application . capabilities ,
580+ workspaces : {
581+ ...coreStart . application . capabilities . workspaces ,
582+ permissionEnabled : true ,
583+ } ,
584+ } ,
585+ } ,
586+ } ;
587+
588+ workspacePlugin . start ( startMock , getMockDependencies ( ) ) ;
589+
590+ expect ( appUpdaterSpy ) . toHaveBeenCalled ( ) ;
591+ const updaterFn = appUpdaterSpy . mock . calls [ 0 ] [ 0 ] ;
592+ const result = ( updaterFn as any ) ( ) ;
593+
594+ expect ( result ) . toStrictEqual ( {
595+ status : AppStatus . accessible ,
596+ navLinkStatus : AppNavLinkStatus . visible ,
597+ } ) ;
598+ } ) ;
599+
600+ it ( '#start should update collaboratorsAppUpdater correctly if permission disabled' , async ( ) => {
601+ const workspacePlugin = new WorkspacePlugin ( ) ;
602+ const setupMock = getSetupMock ( ) ;
603+ const coreStart = coreMock . createStart ( ) ;
604+ await workspacePlugin . setup ( setupMock , { } ) ;
605+
606+ const appUpdaterSpy = jest . spyOn ( ( workspacePlugin as any ) . collaboratorsAppUpdater$ , 'next' ) ;
607+
608+ const startMock = {
609+ ...coreStart ,
610+ chrome : {
611+ ...coreStart . chrome ,
612+ navGroup : {
613+ ...coreStart . chrome . navGroup ,
614+ getNavGroupEnabled : jest . fn ( ) . mockReturnValue ( false ) ,
615+ } ,
616+ } ,
617+ application : {
618+ ...coreStart . application ,
619+ capabilities : {
620+ ...coreStart . application . capabilities ,
621+ workspaces : {
622+ ...coreStart . application . capabilities . workspaces ,
623+ permissionEnabled : false ,
624+ } ,
625+ } ,
626+ } ,
627+ } ;
628+
629+ workspacePlugin . start ( startMock , getMockDependencies ( ) ) ;
630+
631+ expect ( appUpdaterSpy ) . toHaveBeenCalled ( ) ;
632+ const updaterFn = appUpdaterSpy . mock . calls [ 0 ] [ 0 ] ;
633+ const result = ( updaterFn as any ) ( ) ;
634+
635+ expect ( result ) . toStrictEqual ( {
636+ status : AppStatus . inaccessible ,
637+ navLinkStatus : AppNavLinkStatus . hidden ,
638+ } ) ;
639+ } ) ;
640+
559641 it ( '#stop should call unregisterNavGroupUpdater' , async ( ) => {
560642 const workspacePlugin = new WorkspacePlugin ( ) ;
561643 const setupMock = getSetupMock ( ) ;
0 commit comments