@@ -322,7 +322,6 @@ describe('Form.Basic', () => {
322
322
// Not trigger
323
323
fireEvent . submit ( container . querySelector ( 'form' ) ) ;
324
324
await timeout ( ) ;
325
- console . log ( container . innerHTML ) ;
326
325
matchError ( container , "'user' is required" ) ;
327
326
expect ( onFinish ) . not . toHaveBeenCalled ( ) ;
328
327
expect ( onFinishFailed ) . toHaveBeenCalledWith ( {
@@ -883,4 +882,38 @@ describe('Form.Basic', () => {
883
882
884
883
expect ( onMetaChange ) . toHaveBeenCalledTimes ( 0 ) ;
885
884
} ) ;
885
+
886
+ describe ( 'set to null value' , ( ) => {
887
+ function test ( name : string , callback : ( form : FormInstance ) => void ) {
888
+ it ( name , async ( ) => {
889
+ const form = React . createRef < FormInstance > ( ) ;
890
+
891
+ const { container } = render (
892
+ < div >
893
+ < Form ref = { form } >
894
+ < InfoField name = { [ 'user' , 'name' ] } initialValue = "bamboo" />
895
+ </ Form >
896
+ </ div > ,
897
+ ) ;
898
+
899
+ expect ( container . querySelector ( 'input' ) . value ) . toBe ( 'bamboo' ) ;
900
+ expect ( form . current . getFieldsValue ( ) ) . toEqual ( { user : { name : 'bamboo' } } ) ;
901
+
902
+ // Set it
903
+ act ( ( ) => {
904
+ callback ( form . current ! ) ;
905
+ } ) ;
906
+ expect ( form . current . getFieldValue ( [ 'user' , 'name' ] ) ) . toBeFalsy ( ) ;
907
+ expect ( container . querySelector ( 'input' ) . value ) . toBe ( '' ) ;
908
+ } ) ;
909
+ }
910
+
911
+ test ( 'by setFieldsValue' , form => {
912
+ form . setFieldsValue ( { user : null } ) ;
913
+ } ) ;
914
+
915
+ test ( 'by setFieldValue' , form => {
916
+ form . setFieldValue ( 'user' , null ) ;
917
+ } ) ;
918
+ } ) ;
886
919
} ) ;
0 commit comments