Files
vant/src/tree-select/test/index.spec.js
2019-08-12 19:15:11 +08:00

144 lines
2.7 KiB
JavaScript

import TreeSelect from '..';
import { mount } from '../../../test/utils';
test('empty list', () => {
expect(mount(TreeSelect)).toMatchSnapshot();
});
test('click-nav event', () => {
const onNavClick = jest.fn();
const onClickNav = jest.fn();
const item = {
text: 'city1',
id: 1
};
const wrapper = mount(TreeSelect, {
propsData: {
items: [
{
text: 'group1',
children: [item]
}
]
},
context: {
on: {
navclick: onNavClick,
'click-nav': onClickNav
}
}
});
const items = wrapper.findAll('.van-tree-select__nav-item');
items.at(0).trigger('click');
expect(onNavClick).toHaveBeenCalledWith(0);
expect(onClickNav).toHaveBeenCalledWith(0);
});
test('click-item event', () => {
const onItemClick = jest.fn();
const onClickItem = jest.fn();
const item = {
text: 'city1',
id: 1
};
const wrapper = mount(TreeSelect, {
propsData: {
items: [
{
text: 'group1',
children: [item]
}
]
},
context: {
on: {
itemclick: onItemClick,
'click-item': onClickItem
}
}
});
const items = wrapper.findAll('.van-tree-select__item');
items.at(0).trigger('click');
expect(onItemClick).toHaveBeenCalledWith(item);
expect(onClickItem).toHaveBeenCalledWith(item);
});
test('click disabled nav', () => {
const onClickNav = jest.fn();
const item = {
text: 'city1',
id: 1
};
const wrapper = mount(TreeSelect, {
propsData: {
items: [
{
text: 'group1',
children: [item],
disabled: true
}
]
},
context: {
on: {
'click-nav': onClickNav
}
}
});
const items = wrapper.findAll('.van-tree-select__nav-item');
items.at(0).trigger('click');
expect(onClickNav).toHaveBeenCalledTimes(0);
});
test('click disabled item', () => {
const onClickItem = jest.fn();
const wrapper = mount(TreeSelect, {
propsData: {
items: [
{
text: 'group1',
children: [
{
text: 'city1',
id: 1,
disabled: true
}
]
}
]
},
context: {
on: {
'click-item': onClickItem
}
}
});
const items = wrapper.findAll('.van-tree-select__item');
items.at(0).trigger('click');
expect(onClickItem).toHaveBeenCalledTimes(0);
});
test('content slot', () => {
const wrapper = mount(TreeSelect, {
propsData: {
items: [
{
text: 'group1'
}
]
},
scopedSlots: {
content: () => 'Custom Content'
}
});
expect(wrapper).toMatchSnapshot();
});