From fd924c439a6fc2ec2cef6afa016ecaf15313d33f Mon Sep 17 00:00:00 2001 From: bbcodrin Date: Tue, 15 May 2018 15:21:38 +0300 Subject: [PATCH] [ADF-2925] Required and invalid validators added (#3277) * test added * tests clean * test added * tslint clean * test name changed * update tests --- .../search-number-range.component.html | 5 +++- .../search-number-range.component.spec.ts | 24 +++++++++++++++++++ .../search-number-range.component.ts | 8 ++++--- 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lib/content-services/search/components/search-number-range/search-number-range.component.html b/lib/content-services/search/components/search-number-range/search-number-range.component.html index 86d72c8ff2..4197ff0e48 100644 --- a/lib/content-services/search/components/search-number-range/search-number-range.component.html +++ b/lib/content-services/search/components/search-number-range/search-number-range.component.html @@ -18,9 +18,12 @@ matInput [formControl]="to" [errorStateMatcher]="matcher" placeholder="{{ 'SEARCH.FILTER.RANGE.TO' | translate }}" autocomplete="off"> - + {{ 'SEARCH.FILTER.VALIDATION.INVALID-FORMAT' | translate }} + + {{ 'SEARCH.FILTER.VALIDATION.REQUIRED-VALUE' | translate }} + diff --git a/lib/content-services/search/components/search-number-range/search-number-range.component.spec.ts b/lib/content-services/search/components/search-number-range/search-number-range.component.spec.ts index 11e3fda0b9..defa51af13 100644 --- a/lib/content-services/search/components/search-number-range/search-number-range.component.spec.ts +++ b/lib/content-services/search/components/search-number-range/search-number-range.component.spec.ts @@ -136,4 +136,28 @@ describe('SearchNumberRangeComponent', () => { expect(component.formValidator).toBeTruthy(); }); + + it('should throw pattern error if "from" value is formed by letters', () => { + component.ngOnInit(); + component.from = new FormControl('abc', component.validators); + expect(component.from.hasError('pattern')).toBe(true); + }); + + it('should not throw pattern error if "from" value is formed by digits', () => { + component.ngOnInit(); + component.from = new FormControl(123, component.validators); + expect(component.from.hasError('pattern')).toBe(false); + }); + + it('should throw required error if "from" value is empty', () => { + component.ngOnInit(); + component.from = new FormControl('', component.validators); + expect(component.from.hasError('required')).toBe(true); + }); + + it('should not throw required error if "from" value is not empty', () => { + component.ngOnInit(); + component.from = new FormControl(123, component.validators); + expect(component.from.hasError('required')).toBe(false); + }); }); diff --git a/lib/content-services/search/components/search-number-range/search-number-range.component.ts b/lib/content-services/search/components/search-number-range/search-number-range.component.ts index db2decb212..c6f754a2c0 100644 --- a/lib/content-services/search/components/search-number-range/search-number-range.component.ts +++ b/lib/content-services/search/components/search-number-range/search-number-range.component.ts @@ -44,6 +44,8 @@ export class SearchNumberRangeComponent implements SearchWidget, OnInit { field: string; format = '[{FROM} TO {TO}]'; + validators: Validators; + ngOnInit(): void { if (this.settings) { @@ -51,13 +53,13 @@ export class SearchNumberRangeComponent implements SearchWidget, OnInit { this.format = this.settings.format || '[{FROM} TO {TO}]'; } - const validators = Validators.compose([ + this.validators = Validators.compose([ Validators.required, Validators.pattern(/^-?(0|[1-9]\d*)?$/) ]); - this.from = new FormControl('', validators); - this.to = new FormControl('', validators); + this.from = new FormControl('', this.validators); + this.to = new FormControl('', this.validators); this.form = new FormGroup({ from: this.from,