fix(DatetimePicker): vant3 fixed incorrect value when dynamic set min/max (#8658)

This commit is contained in:
nemo-shen
2021-05-05 22:36:52 +08:00
committed by GitHub
parent 52fb7628f2
commit 15940fd4ad
5 changed files with 90 additions and 10 deletions
+36 -1
View File
@@ -1,6 +1,7 @@
import TimePicker from '../TimePicker';
import { mount, later, triggerDrag } from '../../../test';
import { ref } from 'vue';
import { ref, reactive } from 'vue';
import { useExpose } from '../../composables/use-expose';
function filter(type: string, options: string[]): string[] {
const mod = type === 'minute' ? 10 : 5;
@@ -150,3 +151,37 @@ test('set min-minute dynamically', async () => {
await later();
expect(wrapper.emitted<[string]>('change')![0][0]).toEqual('13:00');
});
test('should emit value correctly when dynamic change min-hour', async () => {
const wrapper = mount({
emits: ['confirm'],
setup(_, { emit }) {
const state = reactive({
time: '10:30',
minHour: 1,
});
const onChange = () => {
state.minHour = 11;
};
useExpose({
onChange,
});
return () => (
<TimePicker
v-model={state.time}
minHour={state.minHour}
onConfirm={(value: Date) => emit('confirm', value)}
/>
);
},
});
await later();
(wrapper.vm as Record<string, any>).onChange();
await later();
wrapper.find('.van-picker__confirm').trigger('click');
expect(wrapper.emitted<[Date]>('confirm')![0][0]).toEqual('11:30');
});