diff --git a/npm/ng-packs/packages/core/src/lib/tests/validators.spec.ts b/npm/ng-packs/packages/core/src/lib/tests/validators.spec.ts index 4465c02788..8b7e64f8db 100644 --- a/npm/ng-packs/packages/core/src/lib/tests/validators.spec.ts +++ b/npm/ng-packs/packages/core/src/lib/tests/validators.spec.ts @@ -11,6 +11,9 @@ describe('Validators', () => { test.each` input | expected + ${undefined} | ${null} + ${null} | ${null} + ${''} | ${null} ${'0'} | ${error} ${'5105105105105100' /* Mastercard */} | ${null} ${'5105105105105101' /* Mastercard */} | ${error} @@ -47,15 +50,13 @@ describe('Validators', () => { describe('Range Validator', () => { test.each` input | options | expected - ${null} | ${undefined} | ${{ min: 0, max: Infinity }} - ${undefined} | ${undefined} | ${{ min: 0, max: Infinity }} - ${''} | ${undefined} | ${{ min: 0, max: Infinity }} + ${null} | ${undefined} | ${null} + ${undefined} | ${undefined} | ${null} + ${''} | ${undefined} | ${null} ${0} | ${undefined} | ${null} ${Infinity} | ${undefined} | ${null} - ${null} | ${{ minimum: 0 }} | ${{ min: 0, max: Infinity }} - ${undefined} | ${{ minimum: 0 }} | ${{ min: 0, max: Infinity }} - ${''} | ${{ minimum: 0 }} | ${{ min: 0, max: Infinity }} - ${0} | ${{ minimum: 0 }} | ${null} + ${'-1'} | ${{ minimum: 0 }} | ${{ min: 0, max: Infinity }} + ${-1} | ${{ minimum: 0 }} | ${{ min: 0, max: Infinity }} ${2} | ${{ minimum: 3, maximum: 5 }} | ${{ min: 3, max: 5 }} ${3} | ${{ minimum: 3, maximum: 5 }} | ${null} ${5} | ${{ minimum: 3, maximum: 5 }} | ${null} @@ -119,12 +120,6 @@ describe('Validators', () => { ${null} | ${undefined} | ${null} ${undefined} | ${undefined} | ${null} ${''} | ${undefined} | ${null} - ${null} | ${{ minimumLength: 0 }} | ${null} - ${undefined} | ${{ minimumLength: 0 }} | ${null} - ${''} | ${{ minimumLength: 0 }} | ${null} - ${null} | ${{ minimumLength: 3 }} | ${{ minlength: 3 }} - ${undefined} | ${{ minimumLength: 3 }} | ${{ minlength: 3 }} - ${''} | ${{ minimumLength: 3 }} | ${{ minlength: 3 }} ${'ab'} | ${{ minimumLength: 3 }} | ${{ minlength: 3 }} ${'abp'} | ${{ minimumLength: 3 }} | ${null} ${'abp'} | ${{ maximumLength: 2 }} | ${{ maxlength: 2 }} @@ -154,6 +149,9 @@ describe('Validators', () => { test.each` input | expected + ${undefined} | ${null} + ${null} | ${null} + ${''} | ${null} ${'http://x'} | ${null} ${'http:///x'} | ${error} ${'https://x'} | ${null} diff --git a/npm/ng-packs/packages/core/src/lib/validators/credit-card.validator.ts b/npm/ng-packs/packages/core/src/lib/validators/credit-card.validator.ts index 0436068d02..8129badfb7 100644 --- a/npm/ng-packs/packages/core/src/lib/validators/credit-card.validator.ts +++ b/npm/ng-packs/packages/core/src/lib/validators/credit-card.validator.ts @@ -8,6 +8,8 @@ export function validateCreditCard(): ValidatorFn { return (control: AbstractControl): CreditCardError | null => { if (control.pristine) return null; + if (['', null, undefined].indexOf(control.value) > -1) return null; + return isValidCreditCard(String(control.value)) ? null : { creditCardNumber: true }; }; } diff --git a/npm/ng-packs/packages/core/src/lib/validators/range.validator.ts b/npm/ng-packs/packages/core/src/lib/validators/range.validator.ts index 15a9862fcd..6530477f53 100644 --- a/npm/ng-packs/packages/core/src/lib/validators/range.validator.ts +++ b/npm/ng-packs/packages/core/src/lib/validators/range.validator.ts @@ -14,7 +14,7 @@ export function validateRange({ maximum = Infinity, minimum = 0 }: RangeOptions return (control: AbstractControl): RangeError | null => { if (control.pristine) return null; - if (['', null, undefined].indexOf(control.value) > -1) return { min: minimum, max: maximum }; + if (['', null, undefined].indexOf(control.value) > -1) return null; const value = Number(control.value); return getMinError(value, minimum, maximum) || getMaxError(value, maximum, minimum); diff --git a/npm/ng-packs/packages/core/src/lib/validators/string-length.validator.ts b/npm/ng-packs/packages/core/src/lib/validators/string-length.validator.ts index 24c98a2435..5a874f7f34 100644 --- a/npm/ng-packs/packages/core/src/lib/validators/string-length.validator.ts +++ b/npm/ng-packs/packages/core/src/lib/validators/string-length.validator.ts @@ -17,7 +17,7 @@ export function validateStringLength({ return (control: AbstractControl): StringLengthError | null => { if (control.pristine) return null; - if (!control.value && minimumLength) return { minlength: minimumLength }; + if (['', null, undefined].indexOf(control.value) > -1) return null; const value = String(control.value); diff --git a/npm/ng-packs/packages/core/src/lib/validators/url.validator.ts b/npm/ng-packs/packages/core/src/lib/validators/url.validator.ts index ef8ab4298c..6eb3169837 100644 --- a/npm/ng-packs/packages/core/src/lib/validators/url.validator.ts +++ b/npm/ng-packs/packages/core/src/lib/validators/url.validator.ts @@ -8,6 +8,8 @@ export function validateUrl(): ValidatorFn { return (control: AbstractControl): UrlError | null => { if (control.pristine) return null; + if (['', null, undefined].indexOf(control.value) > -1) return null; + return isValidUrl(control.value) ? null : { url: true }; }; }