diff --git a/src/app/core/data/comcol-data.service.spec.ts b/src/app/core/data/comcol-data.service.spec.ts index 80989ee00b..80e70bed51 100644 --- a/src/app/core/data/comcol-data.service.spec.ts +++ b/src/app/core/data/comcol-data.service.spec.ts @@ -207,12 +207,12 @@ describe('ComColDataService', () => { it('top level community cache refreshed', () => { scheduler.schedule(() => (service as any).refreshCache(data)); scheduler.flush(); - expect(requestService.removeByHrefSubstring).toHaveBeenCalledWith('https://rest.api/core/communities/search/top'); + expect(requestService.setStaleByHrefSubstring).toHaveBeenCalledWith('https://rest.api/core/communities/search/top'); }); it('top level community without parent link, cache not refreshed', () => { scheduler.schedule(() => (service as any).refreshCache(communityWithoutParentHref)); scheduler.flush(); - expect(requestService.removeByHrefSubstring).not.toHaveBeenCalled(); + expect(requestService.setStaleByHrefSubstring).not.toHaveBeenCalled(); }); }); @@ -245,7 +245,7 @@ describe('ComColDataService', () => { it('child level community cache refreshed', () => { scheduler.schedule(() => (service as any).refreshCache(data)); scheduler.flush(); - expect(requestService.removeByHrefSubstring).toHaveBeenCalledWith('a20da287-e174-466a-9926-f66as300d399'); + expect(requestService.setStaleByHrefSubstring).toHaveBeenCalledWith('a20da287-e174-466a-9926-f66as300d399'); }); }); }); diff --git a/src/app/core/data/comcol-data.service.ts b/src/app/core/data/comcol-data.service.ts index ca8d510b14..3098bdf4be 100644 --- a/src/app/core/data/comcol-data.service.ts +++ b/src/app/core/data/comcol-data.service.ts @@ -1,5 +1,5 @@ import { distinctUntilChanged, filter, map, switchMap, take, tap } from 'rxjs/operators'; -import { Observable } from 'rxjs'; +import { combineLatest as observableCombineLatest, Observable } from 'rxjs'; import { hasValue, isEmpty, isNotEmpty } from '../../shared/empty.util'; import { ObjectCacheService } from '../cache/object-cache.service'; import { Community } from '../shared/community.model'; @@ -116,15 +116,16 @@ export abstract class ComColDataService extend if (!hasValue(parentCommunityUrl)) { return; } - this.findByHref(parentCommunityUrl).pipe( - getFirstCompletedRemoteData(), - ).subscribe((rd: RemoteData) => { + observableCombineLatest([ + this.findByHref(parentCommunityUrl).pipe( + getFirstCompletedRemoteData(), + ), + this.halService.getEndpoint('communities/search/top').pipe(take(1)) + ]).subscribe(([rd, topHref]: [RemoteData, string]) => { if (rd.hasSucceeded && isNotEmpty(rd.payload) && isNotEmpty(rd.payload.id)) { - this.requestService.removeByHrefSubstring(rd.payload.id); + this.requestService.setStaleByHrefSubstring(rd.payload.id); } else { - this.halService.getEndpoint('communities/search/top') - .pipe(take(1)) - .subscribe((href) => this.requestService.removeByHrefSubstring(href)); + this.requestService.setStaleByHrefSubstring(topHref); } }); }