- diff --git a/src/app/components/favorite-libraries/favorite-libraries.component.spec.ts b/src/app/components/favorite-libraries/favorite-libraries.component.spec.ts index c6323d494..d43acb835 100644 --- a/src/app/components/favorite-libraries/favorite-libraries.component.spec.ts +++ b/src/app/components/favorite-libraries/favorite-libraries.component.spec.ts @@ -39,6 +39,7 @@ import { FavoriteLibrariesComponent } from './favorite-libraries.component'; import { AppTestingModule } from '../../testing/app-testing.module'; import { ContentApiService } from '../../services/content-api.service'; import { ExperimentalDirective } from '../../directives/experimental.directive'; +import { ContentManagementService } from '../../services/content-management.service'; import { EffectsModule } from '@ngrx/effects'; import { LibraryEffects } from '../../store/effects'; import { of } from 'rxjs'; @@ -50,6 +51,7 @@ describe('LibrariesComponent', () => { let contentApiService: ContentApiService; let router: Router; let page; + let contentManagementService; beforeEach(() => { page = { @@ -73,6 +75,7 @@ describe('LibrariesComponent', () => { AppConfigPipe, ExperimentalDirective ], + providers: [ContentManagementService], schemas: [NO_ERRORS_SCHEMA] }); @@ -81,6 +84,7 @@ describe('LibrariesComponent', () => { alfrescoApi = TestBed.get(AlfrescoApiService); contentApiService = TestBed.get(ContentApiService); + contentManagementService = TestBed.get(ContentManagementService); alfrescoApi.reset(); router = TestBed.get(Router); @@ -99,9 +103,9 @@ describe('LibrariesComponent', () => { spyOn(contentApiService, 'getFavoriteLibraries').and.returnValue( of(page) ); - fixture.autoDetectChanges(); + fixture.detectChanges(); - expect(component.favoriteList).toEqual(page); + expect(component.list).toEqual(page); expect(component.dataIsLoading).toBe(false); })); }); @@ -121,4 +125,28 @@ describe('LibrariesComponent', () => { expect(router.navigate).toHaveBeenCalledWith(['libraries', 'libraryId']); }); }); + + describe('Reload on actions', () => { + beforeEach(() => { + spyOn(contentApiService, 'getFavoriteLibraries').and.returnValue( + of(page) + ); + fixture.detectChanges(); + }); + + it('should reload on libraryDeleted action', () => { + contentManagementService.libraryDeleted.next(); + expect(contentApiService.getFavoriteLibraries).toHaveBeenCalled(); + }); + + it('should reload on libraryUpdated action', () => { + contentManagementService.libraryUpdated.next(); + expect(contentApiService.getFavoriteLibraries).toHaveBeenCalled(); + }); + + it('should reload on favoriteLibraryToggle action', () => { + contentManagementService.favoriteLibraryToggle.next(); + expect(contentApiService.getFavoriteLibraries).toHaveBeenCalled(); + }); + }); }); diff --git a/src/app/components/favorite-libraries/favorite-libraries.component.ts b/src/app/components/favorite-libraries/favorite-libraries.component.ts index 3c9ff85df..db2f192a0 100644 --- a/src/app/components/favorite-libraries/favorite-libraries.component.ts +++ b/src/app/components/favorite-libraries/favorite-libraries.component.ts @@ -39,7 +39,7 @@ import { PageComponent } from '../page.component'; }) export class FavoriteLibrariesComponent extends PageComponent implements OnInit { - favoriteList: FavoritePaging; + list: FavoritePaging; dataIsLoading = true; isSmallScreen = false; columns: any[] = []; @@ -57,21 +57,12 @@ export class FavoriteLibrariesComponent extends PageComponent ngOnInit() { super.ngOnInit(); - this.contentApiService.getFavoriteLibraries().subscribe( - (favoriteLibraries: FavoritePaging) => { - this.favoriteList = favoriteLibraries; - this.dataIsLoading = false; - }, - () => { - this.favoriteList = null; - this.dataIsLoading = false; - } - ); + this.getList(); this.subscriptions = this.subscriptions.concat([ - this.content.libraryDeleted.subscribe(() => this.reload()), - this.content.libraryUpdated.subscribe(() => this.reload()), - this.content.favoriteLibraryToggle.subscribe(() => this.reload()), + this.content.libraryDeleted.subscribe(() => this.reloadList()), + this.content.libraryUpdated.subscribe(() => this.reloadList()), + this.content.favoriteLibraryToggle.subscribe(() => this.reloadList()), this.breakpointObserver .observe([Breakpoints.HandsetPortrait, Breakpoints.HandsetLandscape]) @@ -87,4 +78,22 @@ export class FavoriteLibrariesComponent extends PageComponent this.store.dispatch(new NavigateLibraryAction(node.entry.guid)); } } + + private getList() { + this.contentApiService.getFavoriteLibraries().subscribe( + (favoriteLibraries: FavoritePaging) => { + this.list = favoriteLibraries; + this.dataIsLoading = false; + }, + () => { + this.list = null; + this.dataIsLoading = false; + } + ); + } + + private reloadList() { + this.reload(); + this.getList(); + } }