diff --git a/goofy-client/libs/navigation-shared/src/lib/+state/navigation.reducer.ts b/goofy-client/libs/navigation-shared/src/lib/+state/navigation.reducer.ts index ff4d0b847a17b7f9f5ce972df84732680552ba83..dc83c5e0fd405af668606ec8b3ec224e1508f2ef 100644 --- a/goofy-client/libs/navigation-shared/src/lib/+state/navigation.reducer.ts +++ b/goofy-client/libs/navigation-shared/src/lib/+state/navigation.reducer.ts @@ -18,9 +18,9 @@ export const initialState: NavigationState = { const navigationReducer = createReducer( initialState, - on(NavigationActions.updateCurrentRouteData, (state: NavigationState, { routeData }) => ({ + on(NavigationActions.updateCurrentRouteData, (state: NavigationState, action) => ({ ...state, - currentRouteData: routeData + currentRouteData: action.routeData })) ); diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts index 239f475a99a39157df9ed1b1174f4b0b6ad724ef..3430a6b2c0857f983fdefa02355a9fb1756a7a67 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.spec.ts @@ -104,12 +104,12 @@ describe('Vorgang Reducer', () => { describe('on "loadNextPage" action', () => { - it('should set vorgangList reload to true', () => { + it('should set vorgangList loading to true', () => { const action = VorgangActions.loadNextPage(); const state: VorgangState = reducer(initialState, action); - expect(state.vorgangList.reload).toBeTruthy(); + expect(state.vorgangList.loading).toBeTruthy(); }) }) @@ -151,12 +151,6 @@ describe('Vorgang Reducer', () => { expect(state.vorgangList.loading).toBeTruthy(); }) - it('should clear vorgaenge', () => { - const state: VorgangState = reducer(initialState, action); - - expect(state.vorgaenge).toBe(EMPTY_ARRAY); - }) - it('should clear searchPreviewList', () => { const state: VorgangState = reducer(initialState, action); @@ -238,6 +232,13 @@ describe('Vorgang Reducer', () => { expect(state.searchPreviewList).toEqual(createEmptyStateResource()); }) + + + it('should set vorgangList reload to true', () => { + const state: VorgangState = reducer(initialState, action); + + expect(state.searchPreviewList).toEqual(createEmptyStateResource()); + }) }) }) @@ -259,7 +260,7 @@ describe('Vorgang Reducer', () => { expect(state.searchInfo.searchString).toEqual(null); }) - it.skip('should set vorganglist reload to true', () => { + it('should set vorganglist reload to true', () => { const state: VorgangState = reducer(initialState, action); expect(state.vorgangList.reload).toBeTruthy(); @@ -293,7 +294,7 @@ describe('Vorgang Reducer', () => { expect(state.searchInfo.searchString).toEqual(searchString); }) - it.skip('should vorgangList reload to true', () => { + it('should vorgangList reload to true', () => { const state: VorgangState = reducer(initialState, action); expect(state.vorgangList.reload).toBeTruthy(); @@ -316,7 +317,7 @@ describe('Vorgang Reducer', () => { expect(state.searchInfo.searchString).toBeNull(); }) - it.skip('should set vorganglist reload to true', () => { + it('should set vorganglist reload to true', () => { const state: VorgangState = reducer(initialState, action); expect(state.vorgangList.reload).toBeTruthy(); diff --git a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts index e98402f9fdc8209406f8253b40c9723c9d08004e..17f1307522dfa0c786361b989b20aeb74517f922 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/+state/vorgang.reducer.ts @@ -53,7 +53,7 @@ const vorgangReducer = createReducer( on(VorgangActions.loadNextPage, (state: VorgangState): VorgangState => ({ ...state, - vorgangList: { ...state.vorgangList, reload: true }, + vorgangList: { ...state.vorgangList, loading: true }, })), on(VorgangActions.loadNextPageSuccess, (state, action: VorgangListAction): VorgangState => ({ ...state, @@ -106,14 +106,17 @@ function buildStateOnNavigation(state: VorgangState, routeData: RouteData): Vorg if (isMyVorgaenge(routeData)) { return { ...state, - vorgangList: { ...state.vorgangList, reload: state.vorgangList.loaded }, - searchInfo: { searchString, changedAfterSearchDone: true } + vorgangList: { ...state.vorgangList, reload: true }, + searchInfo: { searchString, changedAfterSearchDone: true }, + vorgaenge: EMPTY_ARRAY }; } if (isVorgangListPage(routeData)) { return { ...state, - searchInfo: { searchString, changedAfterSearchDone: false } + searchInfo: { searchString, changedAfterSearchDone: false }, + vorgangList: { ...state.vorgangList, reload: true }, + vorgaenge: EMPTY_ARRAY }; } if (isSearch(routeData)) { @@ -132,7 +135,7 @@ function buildStateOnNavigation(state: VorgangState, routeData: RouteData): Vorg return { ...state, searchInfo: { ...state.searchInfo, searchString: null, changedAfterSearchDone: false }, - vorgangList: { ...state.vorgangList, reload: true, resource: null }, + vorgangList: { ...state.vorgangList, reload: true }, vorgaenge: EMPTY_ARRAY }; } diff --git a/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.spec.ts b/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.spec.ts index db668cc5f425be192bb5d0138f5e7a86d4cc72e5..4688c1a75564a75b8096d1e01e965b20138eacaf 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.spec.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.spec.ts @@ -94,7 +94,7 @@ describe('VorgangListService', () => { it('should return value on loaded resource', () => { const vorgangList = service.getVorgangList(); - expect(vorgangList).toBeObservable(cold('ab', { a: createEmptyStateResource(true), b: { ...vorgangListStateResource, reload: true } })); + expect(vorgangList).toBeObservable(cold('a', { a: createEmptyStateResource(true) })); }) it.skip('FIXME: should load vorgangList', () => { diff --git a/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.ts b/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.ts index 53077de656eedaf4d86bcc1634decf763a567255..3653ce3bbe2358b64408e0505ac4b0c7e85b8f9d 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/vorgang-list.service.ts @@ -3,7 +3,7 @@ import { ApiRootFacade, ApiRootResource } from '@goofy-client/api-root-shared'; import { NavigationFacade, RouteData } from '@goofy-client/navigation-shared'; import { createEmptyStateResource, doIfLoadingRequired, EMPTY_STRING, isNotNull, StateResource } from '@goofy-client/tech-shared'; import { combineLatest, Observable } from 'rxjs'; -import { map, startWith, tap } from 'rxjs/operators'; +import { filter, map, startWith, tap } from 'rxjs/operators'; import { VorgangFacade } from './+state/vorgang.facade'; import { getSearchLinkRel, getSearchString, isMyVorgaenge, isSearch, isVorgangListPage } from './vorgang-navigation.util'; import { SearchInfo, VorgangListResource, VorgangResource } from './vorgang.model'; @@ -21,6 +21,7 @@ export class VorgangListService { } }), map(([vorgangList, ,]) => vorgangList), + filter(vorgangList => !vorgangList.reload), startWith(createEmptyStateResource<VorgangListResource>(true))); } diff --git a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/empty-list/empty-list.component.html b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/empty-list/empty-list.component.html index 6d2851dba97adeadb96d48a0ae2928f862f20713..1b07d09ed99f07c1eae677f9baa359f705cf43fa 100644 --- a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/empty-list/empty-list.component.html +++ b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/empty-list/empty-list.component.html @@ -5,7 +5,4 @@ <ng-template #emptyDatabase> <h3 data-test-id="empty-database-text">Es sind keine Vorgänge vorhanden</h3> -</ng-template> - - - +</ng-template> \ No newline at end of file diff --git a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.html b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.html index 7222e2d59bd2beb2eaa4c585d8f89333b7979fbd..e4b2eef1b21f0d4ff087486d941a7c9788494835 100644 --- a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.html +++ b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.html @@ -2,6 +2,6 @@ <goofy-client-spinner diameter="60" [stateResource]="vorgangListPageResource"></goofy-client-spinner> -<goofy-client-empty-list *ngIf="!vorgangListPageResource.loading && !(vorgaenge && vorgaenge.length)" data-test-id="empty-list" +<goofy-client-empty-list *ngIf="!vorgangListPageResource.loading && vorgangListPageResource.loaded && !(vorgaenge && vorgaenge.length)" data-test-id="empty-list" [searchString]="searchString"> -</goofy-client-empty-list> +</goofy-client-empty-list> \ No newline at end of file diff --git a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.spec.ts b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.spec.ts index 7ae84958afa3e3072836297873c9e2577a3f44f0..6dfbbdbc9671fb92707732f30e914878637ee9ac 100644 --- a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.spec.ts +++ b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.spec.ts @@ -5,7 +5,7 @@ import { getElementFromFixture, getElementsFromFixture, mock } from '@goofy-clie import { VorgangListLinkRel } from '@goofy-client/vorgang-shared'; import { getDataTestIdOf } from 'libs/tech-shared/test/data-test'; import { SpinnerComponent } from 'libs/ui/src/lib/ui/spinner/spinner.component'; -import { createVorgangListResource, createVorgangResources } from 'libs/vorgang-shared/test/vorgang'; +import { createVorgangListResource, createVorgangListResourceWithResource, createVorgangResources } from 'libs/vorgang-shared/test/vorgang'; import { MockComponent } from 'ng-mocks'; import { EventEmitter } from 'stream'; import { EmptyListComponent } from './empty-list/empty-list.component'; @@ -54,6 +54,7 @@ describe('VorgangListComponent', () => { }); it('should have empty list', () => { + component.vorgangListPageResource = createStateResource(createVorgangListResourceWithResource([])); component.vorgaenge = []; fixture.detectChanges(); @@ -62,6 +63,16 @@ describe('VorgangListComponent', () => { expect(emptyListElement).toBeInstanceOf(HTMLElement); }); + it('should not have empty list on not loaded resource', () => { + component.vorgangListPageResource = createStateResource(null); + component.vorgaenge = []; + fixture.detectChanges(); + + const emptyListElement = getElementFromFixture(fixture, emptyList); + + expect(emptyListElement).not.toBeInstanceOf(HTMLElement); + }); + describe('onWindowsScroll', () => { beforeEach(() => {