Skip to content

Commit ec8a4d7

Browse files
committedNov 28, 2023
fix: respect global validateOnModelUpdate for defineField closes #4567
1 parent aeb3694 commit ec8a4d7

File tree

3 files changed

+41
-1
lines changed

3 files changed

+41
-1
lines changed
 

‎.changeset/shy-bags-bake.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'vee-validate': patch
3+
---
4+
5+
fix: defineField should respect global validateOnModelUpdate closes #4567

‎packages/vee-validate/src/useForm.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -1033,7 +1033,10 @@ export function useForm<
10331033
return base as BaseFieldProps & TExtras;
10341034
});
10351035

1036-
const model = createModel(path, () => evalConfig().validateOnModelUpdate ?? true);
1036+
const model = createModel(
1037+
path,
1038+
() => evalConfig().validateOnModelUpdate ?? getConfig()?.validateOnModelUpdate ?? true,
1039+
);
10371040

10381041
return [model, props] as [Ref<TValue>, Ref<BaseFieldProps & TExtras>];
10391042
}

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

+32
Original file line numberDiff line numberDiff line change
@@ -1351,4 +1351,36 @@ describe('useForm()', () => {
13511351
form.resetField('fname', { value: 'test' });
13521352
expect(form.meta.value.dirty).toBe(false);
13531353
});
1354+
1355+
test('defineField respects global model config', async () => {
1356+
let form!: FormContext<{ fname: string; lname: string }>;
1357+
let model!: Ref<string>;
1358+
configure({
1359+
validateOnModelUpdate: false,
1360+
});
1361+
1362+
mountWithHoc({
1363+
setup() {
1364+
form = useForm({
1365+
initialValues: { fname: '123', lname: '456' },
1366+
validationSchema: yup.object({
1367+
fname: yup.string().required(),
1368+
}),
1369+
});
1370+
1371+
const field = form.defineField('fname');
1372+
model = field[0];
1373+
1374+
return {};
1375+
},
1376+
template: `
1377+
<div></div>
1378+
`,
1379+
});
1380+
1381+
await flushPromises();
1382+
model.value = '';
1383+
await flushPromises();
1384+
await expect(form.errors.value.fname).toBe(undefined);
1385+
});
13541386
});

0 commit comments

Comments
 (0)
Please sign in to comment.