File tree Expand file tree Collapse file tree 2 files changed +57
-0
lines changed Expand file tree Collapse file tree 2 files changed +57
-0
lines changed Original file line number Diff line number Diff line change @@ -954,6 +954,9 @@ export class FormStore {
954
954
// Do not throw in console
955
955
returnPromise . catch < ValidateErrorEntity > ( e => e ) ;
956
956
957
+ // `validating` changed. Trigger `onFieldsChange`
958
+ this . triggerOnFieldsChange ( namePathList ) ;
959
+
957
960
return returnPromise as Promise < Store > ;
958
961
} ;
959
962
Original file line number Diff line number Diff line change @@ -794,4 +794,58 @@ describe('Form.Validate', () => {
794
794
await timeout ( ) ;
795
795
expect ( validateTrigger ) . toBeCalledWith ( true ) ;
796
796
} ) ;
797
+
798
+ it ( 'should trigger onFieldsChange 3 times' , async ( ) => {
799
+ const onFieldsChange = jest . fn ( ) ;
800
+
801
+ const wrapper = mount (
802
+ < Form onFieldsChange = { onFieldsChange } >
803
+ < InfoField name = "test" rules = { [ { required : true } ] } >
804
+ < Input />
805
+ </ InfoField >
806
+ </ Form > ,
807
+ ) ;
808
+
809
+ await changeValue ( getField ( wrapper , 'test' ) , '' ) ;
810
+
811
+ await timeout ( ) ;
812
+
813
+ // `validated: false` -> `validated: false` -> `validated: true`
814
+ // `validating: false` -> `validating: true` -> `validating: false`
815
+ expect ( onFieldsChange ) . toHaveBeenCalledTimes ( 3 ) ;
816
+
817
+ expect ( onFieldsChange ) . toHaveBeenNthCalledWith (
818
+ 1 ,
819
+ [
820
+ expect . objectContaining ( {
821
+ name : [ 'test' ] ,
822
+ validated : false ,
823
+ validating : false ,
824
+ } ) ,
825
+ ] ,
826
+ expect . anything ( ) ,
827
+ ) ;
828
+ expect ( onFieldsChange ) . toHaveBeenNthCalledWith (
829
+ 2 ,
830
+ [
831
+ expect . objectContaining ( {
832
+ name : [ 'test' ] ,
833
+ validated : false ,
834
+ validating : true ,
835
+ } ) ,
836
+ ] ,
837
+ expect . anything ( ) ,
838
+ ) ;
839
+ expect ( onFieldsChange ) . toHaveBeenNthCalledWith (
840
+ 3 ,
841
+ [
842
+ expect . objectContaining ( {
843
+ name : [ 'test' ] ,
844
+ validated : true ,
845
+ validating : false ,
846
+ } ) ,
847
+ ] ,
848
+ expect . anything ( ) ,
849
+ ) ;
850
+ } ) ;
797
851
} ) ;
You can’t perform that action at this time.
0 commit comments