From dfb9a344acf1e6744e5d43c2de70a1951d6aa562 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 23 Jan 2023 16:46:17 +0100 Subject: [PATCH] OZG-3114 refactor after code review --- .../vorgang-search.component.spec.ts | 42 +++++++++---------- .../vorgang-search.component.ts | 12 +++--- .../vorgang-search.formservice.ts | 4 ++ 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts index aa4b023154..c5c506cde9 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.spec.ts @@ -150,7 +150,7 @@ describe('VorgangSearchComponent', () => { component.submit(); - expect(component.searchValueFocusIn).toEqual('Gewerbe'); + expect(component.previouslyEnteredSearchValue).toEqual('Gewerbe'); }); it('should submit form', () => { @@ -169,25 +169,32 @@ describe('VorgangSearchComponent', () => { component.focusIn(); - expect(component.searchValueFocusIn).toEqual('Gewerbe'); + expect(component.previouslyEnteredSearchValue).toEqual('Gewerbe'); }); }); describe('focusOut', () => { - it('should set new form value when focus out to search button (Lupe)', () => { - const lupeElement = {}; - component.searchValueFocusIn = 'Gewerbe'; // previous value - component.searchSubmitButton = { + function createSearchSubmitMockButton(nativeElement: any): MatButton { + return { _elementRef: { - nativeElement: lupeElement + nativeElement: nativeElement } } as MatButton; + } - const searchFieldFormControl = new UntypedFormControl('Gewe'); // input form value - component.formService.form = new UntypedFormGroup({ + function createMockFormGroup(searchFieldFormControl: UntypedFormControl): UntypedFormGroup { + return new UntypedFormGroup({ search: searchFieldFormControl - }) + }); + } + + it('should set new form value when focus out to search button (Lupe)', () => { + const lupeElement = {}; + component.previouslyEnteredSearchValue = 'Gewerbe'; + component.searchSubmitButton = createSearchSubmitMockButton(lupeElement); + const searchFieldFormControl = new UntypedFormControl('Gewe'); + component.formService.form = createMockFormGroup(searchFieldFormControl); component.focusOut({ relatedTarget: lupeElement } as FocusEvent); @@ -196,17 +203,10 @@ describe('VorgangSearchComponent', () => { it('should set previous value', () => { - component.searchValueFocusIn = 'Gewe'; // previous value - component.searchSubmitButton = { - _elementRef: { - nativeElement: null - } - } as MatButton; - - const searchFieldFormControl = new UntypedFormControl('Gewerbe'); // input form value - component.formService.form = new UntypedFormGroup({ - search: searchFieldFormControl - }) + component.previouslyEnteredSearchValue = 'Gewe'; + component.searchSubmitButton = createSearchSubmitMockButton(null); + const searchFieldFormControl = new UntypedFormControl('Gewerbe'); + component.formService.form = createMockFormGroup(searchFieldFormControl); component.focusOut({ relatedTarget: {} } as FocusEvent); diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.ts b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.ts index eb0ce7a2af..d687df5454 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.ts +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.component.ts @@ -42,7 +42,7 @@ export class VorgangSearchComponent { @ViewChild('searchInput') searchInput: ElementRef; @ViewChild('searchSubmitButton') searchSubmitButton: MatButton; - searchValueFocusIn: string; + previouslyEnteredSearchValue: string; readonly vorgangHeaderLinkRel = VorgangHeaderLinkRel; readonly vorgangListLinkRel = VorgangListLinkRel; @@ -55,21 +55,21 @@ export class VorgangSearchComponent { } submit(): void { - this.searchValueFocusIn = this.formService.getValue(); + this.previouslyEnteredSearchValue = this.formService.getValue(); this.formService.submit(); } focusIn(): void { - this.searchValueFocusIn = this.formService.getValue(); + this.previouslyEnteredSearchValue = this.formService.getValue(); } focusOut(event: FocusEvent): void { - if (!this.isRelatedFocusedElementSearchSubmitButton(event)) { - this.formService.form.controls[this.formService.SEARCH_FIELD].setValue(this.searchValueFocusIn); + if (!this.isRelatedTargetSearchButton(event)) { + this.formService.setSearchValue(this.previouslyEnteredSearchValue); } } - private isRelatedFocusedElementSearchSubmitButton(event: FocusEvent): boolean { + private isRelatedTargetSearchButton(event: FocusEvent): boolean { return event.relatedTarget === this.searchSubmitButton._elementRef.nativeElement; } } \ No newline at end of file diff --git a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.formservice.ts b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.formservice.ts index d9905f2c40..da9243623a 100644 --- a/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.formservice.ts +++ b/goofy-client/libs/vorgang-shared-ui/src/lib/vorgang-search-container/vorgang-search/vorgang-search.formservice.ts @@ -149,6 +149,10 @@ export class VorgangSearchFormService implements OnDestroy { return isEmpty(value) ? null : value; } + setSearchValue(value: string): void { + this.form.controls[this.SEARCH_FIELD].setValue(value); + } + ngOnDestroy(): void { if (isNotNil(this.subscription)) this.subscription.unsubscribe(); if (isNotNil(this.previewSubscription)) this.previewSubscription.unsubscribe(); -- GitLab