From c7024d44578daf613176567df05247588d8c5fc6 Mon Sep 17 00:00:00 2001 From: inottn Date: Sun, 9 Feb 2025 20:51:34 +0800 Subject: [PATCH] test(Field): should not modify the value if it's within the min/max (#13343) Co-authored-by: dgmpk <465316497@qq.com> Co-authored-by: neverland --- packages/vant/src/field/Field.tsx | 1 + packages/vant/src/field/test/index.spec.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/packages/vant/src/field/Field.tsx b/packages/vant/src/field/Field.tsx index c7bec9a22..4c51a4be7 100644 --- a/packages/vant/src/field/Field.tsx +++ b/packages/vant/src/field/Field.tsx @@ -346,6 +346,7 @@ export default defineComponent({ props.min ?? -Infinity, props.max ?? Infinity, ); + if (+value !== adjustedValue) { value = adjustedValue.toString(); } diff --git a/packages/vant/src/field/test/index.spec.js b/packages/vant/src/field/test/index.spec.js index 911bd7b6b..eed9f8138 100644 --- a/packages/vant/src/field/test/index.spec.js +++ b/packages/vant/src/field/test/index.spec.js @@ -123,6 +123,23 @@ test('should limit input value based on min and max props', async () => { expect(wrapper.emitted('update:modelValue')[2][0]).toEqual('5'); }); +test('should not modify the value if it is within the min/max', async () => { + const wrapper = mount(Field, { + props: { + type: 'number', + min: 2, + max: 10, + modelValue: '', + }, + }); + + const input = wrapper.find('input'); + + await wrapper.setProps({ modelValue: '2.00' }); + await input.trigger('blur'); + expect(wrapper.emitted('update:modelValue')).toBeFalsy(); +}); + test('should render textarea when type is textarea', async () => { const wrapper = mount(Field, { props: {