From c0903acbd44cc26d353dc13c7e40a721d5c7473f Mon Sep 17 00:00:00 2001 From: Pawel Kozlowski Date: Mon, 24 Oct 2022 15:57:26 +0200 Subject: [PATCH] Revert "fix(forms): don't mutate validators array (#47830)" (#47845) This reverts commit 0329c13e95127fd6f0044b6809b9bccb27f3cb91. PR Close #47845 --- .../forms_reactive/bundle.golden_symbols.json | 6 +++ .../bundle.golden_symbols.json | 6 +++ packages/forms/src/model/abstract_model.ts | 22 +++++----- packages/forms/test/form_control_spec.ts | 44 ------------------- 4 files changed, 24 insertions(+), 54 deletions(-) diff --git a/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json b/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json index 85d3f57fda964..f3d24876d459f 100644 --- a/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json +++ b/packages/core/test/bundling/forms_reactive/bundle.golden_symbols.json @@ -632,6 +632,12 @@ { "name": "cleanUpView" }, + { + "name": "coerceToAsyncValidator" + }, + { + "name": "coerceToValidator" + }, { "name": "collectNativeNodes" }, diff --git a/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json b/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json index 322393d2c42a7..d89114209186c 100644 --- a/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json +++ b/packages/core/test/bundling/forms_template_driven/bundle.golden_symbols.json @@ -608,9 +608,15 @@ { "name": "cleanUpView" }, + { + "name": "coerceToAsyncValidator" + }, { "name": "coerceToBoolean" }, + { + "name": "coerceToValidator" + }, { "name": "collectNativeNodes" }, diff --git a/packages/forms/src/model/abstract_model.ts b/packages/forms/src/model/abstract_model.ts index 40383efbde1a1..015cb39ba54b0 100644 --- a/packages/forms/src/model/abstract_model.ts +++ b/packages/forms/src/model/abstract_model.ts @@ -372,7 +372,7 @@ export abstract class AbstractControl { expect(c.valid).toEqual(true); }); - it('should not mutate the validators array when overriding using setValidators', () => { - const control = new FormControl(''); - const originalValidators = [Validators.required]; - - control.setValidators(originalValidators); - control.addValidators(Validators.minLength(10)); - - expect(originalValidators.length).toBe(1); - }); - it('should override validators by setting `control.validator` field value', () => { const c = new FormControl(''); expect(c.valid).toEqual(true); @@ -367,30 +357,6 @@ describe('FormControl', () => { expect(c.hasValidator(Validators.required)).toEqual(false); }); - it('should not mutate the validators array when adding/removing sync validators', () => { - const originalValidators = [Validators.required]; - const control = new FormControl('', originalValidators); - - control.addValidators(Validators.min(10)); - expect(originalValidators.length).toBe(1); - - control.removeValidators(Validators.required); - expect(originalValidators.length).toBe(1); - }); - - it('should not mutate the validators array when adding/removing async validators', () => { - const firstValidator = asyncValidator('one'); - const secondValidator = asyncValidator('two'); - const originalValidators = [firstValidator]; - const control = new FormControl('', null, originalValidators); - - control.addAsyncValidators(secondValidator); - expect(originalValidators.length).toBe(1); - - control.removeAsyncValidators(firstValidator); - expect(originalValidators.length).toBe(1); - }); - it('should return false when checking presence of a validator not identical by reference', () => { const minValidator = Validators.min(5); @@ -552,16 +518,6 @@ describe('FormControl', () => { expect(c.valid).toEqual(true); })); - it('should not mutate the validators array when overriding using setValidators', () => { - const control = new FormControl(''); - const originalValidators = [asyncValidator('one')]; - - control.setAsyncValidators(originalValidators); - control.addAsyncValidators(asyncValidator('two')); - - expect(originalValidators.length).toBe(1); - }); - it('should override validators by setting `control.asyncValidator` field value', fakeAsync(() => { const c = new FormControl('');