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

Merge branch 'OZG-2943_Suche_Treffervoranzeige_loeschen' of...

Merge branch 'OZG-2943_Suche_Treffervoranzeige_loeschen' of git.ozg-sh.de:mgm/goofy into OZG-2943_Suche_Treffervoranzeige_loeschen
parents 97cd33da 71ed4d07
No related branches found
No related tags found
No related merge requests found
......@@ -25,6 +25,7 @@
-->
<ng-container *ngIf="apiRoot$ | async as apiRootStateResource">
<goofy-client-vorgang-search *ngIf="(apiRootStateResource.resource | hasLink: apiRootLinkRel.SEARCH) || (apiRootStateResource.resource | hasLink: apiRootLinkRel.SEARCH_MY_VORGAENGE)" data-test-id="vorgang-search"
[vorgangSearchPreviewList]="vorgangSearchPreviewList$ | async">
[vorgangSearchPreviewList]="vorgangSearchPreviewList$ | async"
(clearEvent)="clearVorgangSearchPreviewList()">
</goofy-client-vorgang-search>
</ng-container>
\ No newline at end of file
......@@ -110,4 +110,12 @@ describe('VorgangSearchContainerComponent', () => {
expect(element).toBeInstanceOf(HTMLElement);
});
})
describe('clear event', () => {
it('should call vorgangListService.clearSearchPreviewList()', () => {
component.clearVorgangSearchPreviewList();
expect(vorgangListService.clearSearchPreviewList).toHaveBeenCalled();
})
})
});
\ No newline at end of file
......@@ -46,4 +46,8 @@ export class VorgangSearchContainerComponent implements OnInit {
this.apiRoot$ = this.apiRootFacade.getApiRoot();
this.vorgangSearchPreviewList$ = this.vorgangListService.getSearchPreviewList();
}
clearVorgangSearchPreviewList() {
this.vorgangListService.clearSearchPreviewList();
}
}
\ No newline at end of file
......@@ -30,10 +30,10 @@ import { MatIcon } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { RouterTestingModule } from '@angular/router/testing';
import { ConvertForDataTestPipe, createEmptyStateResource, createStateResource, EMPTY_STRING, HasLinkPipe, StateResource, ToEmbeddedResourcesPipe } from '@goofy-client/tech-shared';
import { ConvertForDataTestPipe, createEmptyStateResource, createStateResource, EMPTY_STRING, HasLinkPipe, ToEmbeddedResourcesPipe } from '@goofy-client/tech-shared';
import { mock } from '@goofy-client/test-utils';
import { SpinnerComponent } from '@goofy-client/ui';
import { SearchInfo, VorgangHeaderLinkRel, VorgangListResource, VorgangListService } from '@goofy-client/vorgang-shared';
import { SearchInfo, VorgangHeaderLinkRel, VorgangListService } from '@goofy-client/vorgang-shared';
import { getDataTestClassOf } from 'libs/tech-shared/test/data-test';
import { createVorgangListResource } from 'libs/vorgang-shared/test/vorgang';
import { MockComponent } from 'ng-mocks';
......@@ -48,9 +48,9 @@ describe('VorgangSearchComponent', () => {
let fixture: ComponentFixture<VorgangSearchComponent>;
const searchFormService = mock(VorgangSearchFormService);
const vorgangListService = { ...mock(VorgangListService), getSearchInfo: () => searchInfoSubj };
const searchInfoSubj: Subject<SearchInfo> = new BehaviorSubject({ searchString: EMPTY_STRING, changedAfterSearchDone: false });
const vorgangListService = { ...mock(VorgangListService), getSearchInfo: () => searchInfoSubj };
const searchPreviewOption: string = getDataTestClassOf('search-preview-option');
......@@ -121,13 +121,14 @@ describe('VorgangSearchComponent', () => {
})
describe('clear event', () => {
it('should empty vorgangSearchPreviewList', () => {
const emptyResource: StateResource<VorgangListResource> = createEmptyStateResource();
it('should emit clear event', () => {
jest.spyOn(component.clearEvent, 'emit');
jest.spyOn(component.searchInput.nativeElement, 'focus');
component.clearVorgangSearchPreviewList();
expect(component.vorgangSearchPreviewList).toEqual(emptyResource);
expect(vorgangListService.clearSearchPreviewList).toHaveBeenCalled();
expect(component.clearEvent.emit).toHaveBeenCalled();
expect(component.searchInput.nativeElement.focus).toHaveBeenCalled();
})
})
});
\ No newline at end of file
......@@ -22,9 +22,9 @@
/// unter der Lizenz sind dem Lizenztext zu entnehmen.
///
import { Component, Input } from '@angular/core';
import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
import { StateResource } from '@goofy-client/tech-shared';
import { VorgangHeaderLinkRel, VorgangListLinkRel, VorgangListResource, VorgangListService } from '@goofy-client/vorgang-shared';
import { VorgangHeaderLinkRel, VorgangListLinkRel, VorgangListResource } from '@goofy-client/vorgang-shared';
import { VorgangSearchFormService } from './vorgang-search.formservice';
@Component({
......@@ -36,13 +36,16 @@ import { VorgangSearchFormService } from './vorgang-search.formservice';
export class VorgangSearchComponent {
@Input() vorgangSearchPreviewList: StateResource<VorgangListResource>;
@Output() public clearEvent: EventEmitter<void> = new EventEmitter<void>();
@ViewChild('searchInput') searchInput: ElementRef;
readonly vorgangHeaderLinkRel = VorgangHeaderLinkRel;
readonly vorgangListLinkRel = VorgangListLinkRel;
constructor(public formService: VorgangSearchFormService, public vorgangListService: VorgangListService) { }
constructor(public formService: VorgangSearchFormService) { }
clearVorgangSearchPreviewList() {
this.vorgangListService.clearSearchPreviewList();
this.clearEvent.emit();
this.searchInput.nativeElement.focus();
}
}
\ No newline at end of file
......@@ -246,7 +246,7 @@ describe('Vorgang Reducer', () => {
it('should set loading to true', () => {
const state: VorgangState = reducer(initialState, action);
expect(state.searchPreviewList.resource).toStrictEqual(vorgangList);
expect(state.searchPreviewList).toStrictEqual(createStateResource(vorgangList));
})
})
......@@ -273,7 +273,7 @@ describe('Vorgang Reducer', () => {
const state: VorgangState = reducer(initialState, action);
expect(state.searchPreviewList.resource).toBeNull();
expect(state.searchPreviewList).toStrictEqual(createEmptyStateResource());
})
})
})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment