mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
151 lines
3.2 KiB
JavaScript
151 lines
3.2 KiB
JavaScript
import NumberKeyboard from '..';
|
|
import { mount, trigger } from '../../../test/utils';
|
|
|
|
test('click number key', () => {
|
|
const wrapper = mount(NumberKeyboard, {
|
|
propsData: {
|
|
theme: 'custom',
|
|
closeButtonText: 'close'
|
|
}
|
|
});
|
|
|
|
wrapper
|
|
.findAll('.van-key')
|
|
.at(0)
|
|
.trigger('click');
|
|
expect(wrapper.emitted('input')[0][0]).toEqual(1);
|
|
|
|
wrapper.destroy();
|
|
});
|
|
|
|
it('click delete key', () => {
|
|
const wrapper = mount(NumberKeyboard);
|
|
wrapper
|
|
.findAll('.van-key')
|
|
.at(11)
|
|
.trigger('click');
|
|
expect(wrapper.emitted('delete')).toBeTruthy();
|
|
});
|
|
|
|
it('click empty key', () => {
|
|
const wrapper = mount(NumberKeyboard);
|
|
wrapper
|
|
.findAll('.van-key')
|
|
.at(9)
|
|
.trigger('click');
|
|
expect(wrapper.emitted('input')).toBeFalsy();
|
|
});
|
|
|
|
test('click close button', () => {
|
|
const wrapper = mount(NumberKeyboard, {
|
|
propsData: {
|
|
theme: 'custom',
|
|
closeButtonText: 'close'
|
|
}
|
|
});
|
|
|
|
wrapper
|
|
.findAll('.van-key')
|
|
.at(12)
|
|
.trigger('click');
|
|
expect(wrapper.emitted('close')).toBeTruthy();
|
|
});
|
|
|
|
test('listen to show/hide event when has transtion', () => {
|
|
const wrapper = mount(NumberKeyboard);
|
|
wrapper.vm.show = true;
|
|
wrapper.trigger('animationend');
|
|
wrapper.vm.show = false;
|
|
wrapper.trigger('animationend');
|
|
expect(wrapper.emitted('show')).toBeTruthy();
|
|
expect(wrapper.emitted('hide')).toBeTruthy();
|
|
});
|
|
|
|
test('listen to show event when no transtion', () => {
|
|
const wrapper = mount(NumberKeyboard, {
|
|
propsData: {
|
|
transition: false
|
|
}
|
|
});
|
|
wrapper.vm.show = true;
|
|
wrapper.vm.show = false;
|
|
expect(wrapper.emitted('show')).toBeTruthy();
|
|
expect(wrapper.emitted('hide')).toBeTruthy();
|
|
});
|
|
|
|
test('render title', () => {
|
|
const wrapper = mount(NumberKeyboard, {
|
|
propsData: {
|
|
title: 'Title',
|
|
closeButtonText: 'Close'
|
|
}
|
|
});
|
|
|
|
expect(wrapper).toMatchSnapshot();
|
|
});
|
|
|
|
test('title-left slot', () => {
|
|
const wrapper = mount(NumberKeyboard, {
|
|
scopedSlots: {
|
|
'title-left': () => 'Custom Title Left'
|
|
}
|
|
});
|
|
|
|
expect(wrapper).toMatchSnapshot();
|
|
});
|
|
|
|
test('hideOnClickOutside', () => {
|
|
const wrapper = mount(NumberKeyboard, {
|
|
propsData: {
|
|
show: true
|
|
}
|
|
});
|
|
|
|
trigger(document.body, 'touchstart');
|
|
expect(wrapper.emitted('blur')).toBeTruthy();
|
|
});
|
|
|
|
test('disable hideOnClickOutside', () => {
|
|
const wrapper = mount(NumberKeyboard, {
|
|
propsData: {
|
|
show: true,
|
|
hideOnClickOutside: false
|
|
}
|
|
});
|
|
|
|
trigger(document.body, 'touchstart');
|
|
expect(wrapper.emitted('blur')).toBeFalsy();
|
|
});
|
|
|
|
test('focus on key', () => {
|
|
const wrapper = mount(NumberKeyboard);
|
|
|
|
const key = wrapper.find('.van-key');
|
|
trigger(key, 'touchstart');
|
|
expect(wrapper).toMatchSnapshot();
|
|
trigger(key, 'touchend');
|
|
expect(wrapper).toMatchSnapshot();
|
|
});
|
|
|
|
test('controlled mode', () => {
|
|
const wrapper = mount(NumberKeyboard, {
|
|
propsData: {
|
|
value: ''
|
|
},
|
|
listeners: {
|
|
'update:value': value => {
|
|
wrapper.setProps({ value });
|
|
}
|
|
}
|
|
});
|
|
|
|
const keys = wrapper.findAll('.van-key');
|
|
keys.at(0).trigger('click');
|
|
keys.at(1).trigger('click');
|
|
|
|
expect(wrapper.vm.value).toEqual('12');
|
|
|
|
keys.at(11).trigger('click');
|
|
expect(wrapper.vm.value).toEqual('1');
|
|
});
|