Skip to content

Commit 7356c10

Browse files
committed
fix: setFieldError should set meta.valid closes #4274
1 parent 12399d2 commit 7356c10

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

.changeset/lemon-schools-arrive.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'vee-validate': patch
3+
---
4+
5+
fix: setFieldError should set meta.valid closes #4274

packages/vee-validate/src/useForm.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ export function useForm<
148148
}
149149

150150
state.errors = normalizeErrorItem(message);
151+
state.valid = !state.errors.length;
151152
}
152153

153154
/**

packages/vee-validate/tests/useForm.spec.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ describe('useForm()', () => {
88
const REQUIRED_MESSAGE = 'Field is required';
99

1010
test('sets individual field error message', async () => {
11+
let fieldMeta!: FieldMeta<unknown>;
1112
mountWithHoc({
1213
setup() {
13-
const { setFieldError } = useForm();
14-
const { errorMessage } = useField('field', val => (val ? true : REQUIRED_MESSAGE));
14+
const { setFieldError } = useForm({ initialValues: { field: 'test' } });
15+
const { errorMessage, meta } = useField('field', val => (val ? true : REQUIRED_MESSAGE));
16+
fieldMeta = meta;
1517

1618
return {
1719
errorMessage,
@@ -30,6 +32,7 @@ describe('useForm()', () => {
3032
document.querySelector('button')?.click();
3133
await flushPromises();
3234
expect(error?.textContent).toBe('WRONG');
35+
expect(fieldMeta.valid).toBe(false);
3336
});
3437

3538
test('can clear individual field error messages', async () => {

0 commit comments

Comments
 (0)