Skip to content

Commit b701987

Browse files
authored
fix: validated should be reset when trigger reset event (#585)
1 parent c2a6427 commit b701987

File tree

2 files changed

+27
-8
lines changed

2 files changed

+27
-8
lines changed

src/Field.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ class Field extends React.Component<InternalFieldProps, FieldState> implements F
253253
// Clean up state
254254
this.touched = false;
255255
this.dirty = false;
256-
this.validatePromise = null;
256+
this.validatePromise = undefined;
257257
this.errors = EMPTY_ERRORS;
258258
this.warnings = EMPTY_ERRORS;
259259
this.triggerMetaEvent();

tests/validate.test.tsx

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -797,14 +797,28 @@ describe('Form.Validate', () => {
797797

798798
it('should trigger onFieldsChange 3 times', async () => {
799799
const onFieldsChange = jest.fn();
800+
const onMetaChange = jest.fn();
800801

801-
const wrapper = mount(
802-
<Form onFieldsChange={onFieldsChange}>
803-
<InfoField name="test" rules={[{ required: true }]}>
804-
<Input />
805-
</InfoField>
806-
</Form>,
807-
);
802+
const App = () => {
803+
const ref = React.useRef(null);
804+
return (
805+
<Form ref={ref} onFieldsChange={onFieldsChange}>
806+
<InfoField
807+
name="test"
808+
rules={[{ required: true }]}
809+
onMetaChange={meta => {
810+
onMetaChange(meta.validated);
811+
}}
812+
>
813+
<Input />
814+
</InfoField>
815+
<button id="reset" type="reset">
816+
reset
817+
</button>
818+
</Form>
819+
);
820+
};
821+
const wrapper = mount(<App />);
808822

809823
await changeValue(getField(wrapper, 'test'), '');
810824

@@ -847,5 +861,10 @@ describe('Form.Validate', () => {
847861
],
848862
expect.anything(),
849863
);
864+
// should reset validated and validating when reset btn had been clicked
865+
wrapper.find('#reset').simulate('reset');
866+
await timeout();
867+
expect(onMetaChange).toHaveBeenNthCalledWith(3, true);
868+
expect(onMetaChange).toHaveBeenNthCalledWith(4, false);
850869
});
851870
});

0 commit comments

Comments
 (0)