Skip to content
Snippets Groups Projects
Commit 679a8460 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-165 check apiRoot resource before loading vorgangList

parent 9756c0fb
No related branches found
No related tags found
No related merge requests found
......@@ -123,6 +123,19 @@ describe('VorgangService', () => {
expect((<any>service).hasNextPage$.value).toBe(false);
})
})
describe('load currentVorgangList with empty ApiRoot resource', () => {
beforeEach(() => {
(<any>apiRootService).getApiRoot.mockReturnValue(of(createEmptyStateResource()));
})
it('should not call repository loadVorgangList', () => {
service.getCurrentVorgangList();
expect(repository.loadVorgangList).not.toHaveBeenCalled();
})
})
})
describe('load next page', () => {
......
......@@ -4,10 +4,10 @@ import { createEmptyStateResource, createStateResource, doIfLoadingRequired, Nav
import { getEmbeddedResource, hasLink } from '@ngxp/rest';
import { ApiRootService } from 'libs/api-root-shared/src/lib/api-root.service';
import { BehaviorSubject, Observable, Subscription } from 'rxjs';
import { first } from 'rxjs/operators';
import { VorgangListLinkRel } from './vorgang.linkrels';
import { VorgangListResource, VorgangMitEingangResource, VorgangResource } from './vorgang.model';
import { VorgangRepository } from './vorgang.repository';
import { first } from 'rxjs/operators';
@Injectable()
export class VorgangService {
......@@ -49,11 +49,15 @@ export class VorgangService {
public getCurrentVorgangList(): Observable<StateResource<VorgangListResource>> {
doIfLoadingRequired(this.currentList$.value, () => this.apiRootService.getApiRoot().pipe(first())
.subscribe(apiRoot => {
this.loadVorgangList(apiRoot.resource)
if (this.isResourceLoaded(apiRoot)) this.loadVorgangList(apiRoot.resource)
}));
return this.currentList$;
}
private isResourceLoaded(apiRoot: StateResource<ApiRootResource>): boolean {
return apiRoot.resource != null;
}
public loadNextPage(): void {
if (!this.isCurrenListResourceLoading()) {
this.loadNextListPage();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment