Added proposed change to force clearing the object cache in workspace component onInit.

This commit is contained in:
Michael W Spalti
2019-10-21 16:51:25 -07:00
parent 83e7b662e3
commit 9ae869936b
4 changed files with 25 additions and 10 deletions

View File

@@ -30,6 +30,8 @@ import { RoleService } from '../core/roles/role.service';
import { MockRoleService } from '../shared/mocks/mock-role-service';
import { SearchFixedFilterService } from '../+search-page/search-filters/search-filter/search-fixed-filter.service';
import { createSuccessfulRemoteDataObject$ } from '../shared/testing/utils';
import { RequestService } from '../core/data/request.service';
import { getMockRequestService } from '../shared/mocks/mock-request.service';
describe('MyDSpacePageComponent', () => {
let comp: MyDSpacePageComponent;
@@ -50,6 +52,7 @@ describe('MyDSpacePageComponent', () => {
const mockResults = createSuccessfulRemoteDataObject$(['test', 'data']);
const searchServiceStub = jasmine.createSpyObj('SearchService', {
search: mockResults,
getEndpoint: observableOf('discover/search/objects'),
getSearchLink: '/mydspace',
getScopes: observableOf(['test-scope']),
setServiceOptions: {}
@@ -76,6 +79,7 @@ describe('MyDSpacePageComponent', () => {
scope: scopeParam
})
};
const sidebarService = {
isCollapsed: observableOf(true),
collapse: () => this.isCollapsed = observableOf(true),
@@ -125,6 +129,10 @@ describe('MyDSpacePageComponent', () => {
{
provide: SearchFixedFilterService,
useValue: mockFixedFilterService
},
{
provide: RequestService,
useValue: getMockRequestService()
}
],
schemas: [NO_ERRORS_SCHEMA]

View File

@@ -28,6 +28,7 @@ import { SearchConfigurationService } from '../+search-page/search-service/searc
import { MyDSpaceConfigurationService } from './my-dspace-configuration.service';
import { ViewMode } from '../core/shared/view-mode.model';
import { MyDSpaceRequest } from '../core/data/request.models';
import { RequestService } from '../core/data/request.service';
export const MYDSPACE_ROUTE = '/mydspace';
export const SEARCH_CONFIG_SERVICE: InjectionToken<SearchConfigurationService> = new InjectionToken<SearchConfigurationService>('searchConfigurationService');
@@ -96,6 +97,7 @@ export class MyDSpacePageComponent implements OnInit {
viewModeList = [ViewMode.List, ViewMode.Detail];
constructor(private service: SearchService,
private requestService: RequestService,
private sidebarService: SearchSidebarService,
private windowService: HostWindowService,
@Inject(SEARCH_CONFIG_SERVICE) public searchConfigService: MyDSpaceConfigurationService) {
@@ -115,7 +117,8 @@ export class MyDSpacePageComponent implements OnInit {
ngOnInit(): void {
this.configurationList$ = this.searchConfigService.getAvailableConfigurationOptions();
this.searchOptions$ = this.searchConfigService.paginatedSearchOptions;
// This assures an empty search cache each for each onInit()
this.service.getEndpoint().subscribe((url) => this.requestService.removeByHrefSubstring(url));
this.sub = this.searchOptions$.pipe(
tap(() => this.resultsRD$.next(null)),
switchMap((options: PaginatedSearchOptions) => this.service.search(options).pipe(getSucceededRemoteData())))

View File

@@ -97,14 +97,8 @@ export class SearchService implements OnDestroy {
}
}
/**
* Method to retrieve a paginated list of search results from the server
* @param {PaginatedSearchOptions} searchOptions The configuration necessary to perform this search
* @param responseMsToLive The amount of milliseconds for the response to live in cache
* @returns {Observable<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>>} Emits a paginated list with all search results found
*/
search(searchOptions?: PaginatedSearchOptions, responseMsToLive?: number): Observable<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>> {
const hrefObs = this.halService.getEndpoint(this.searchLinkPath).pipe(
getEndpoint(searchOptions?: PaginatedSearchOptions): Observable<string> {
return this.halService.getEndpoint(this.searchLinkPath).pipe(
map((url: string) => {
if (hasValue(searchOptions)) {
return (searchOptions as PaginatedSearchOptions).toRestUrl(url);
@@ -113,6 +107,17 @@ export class SearchService implements OnDestroy {
}
})
);
}
/**
* Method to retrieve a paginated list of search results from the server
* @param {PaginatedSearchOptions} searchOptions The configuration necessary to perform this search
* @param responseMsToLive The amount of milliseconds for the response to live in cache
* @returns {Observable<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>>} Emits a paginated list with all search results found
*/
search(searchOptions?: PaginatedSearchOptions, responseMsToLive?: number): Observable<RemoteData<PaginatedList<SearchResult<DSpaceObject>>>> {
const hrefObs = this.getEndpoint(searchOptions);
const requestObs = hrefObs.pipe(
map((url: string) => {

View File

@@ -21,7 +21,6 @@ import { ProcessTaskResponse } from './models/process-task-response';
*/
@Injectable()
export class ClaimedTaskDataService extends TasksService<ClaimedTask> {
protected responseMsToLive = 10 * 1000;
protected responseMsToLive = 10 * 1000;