| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import Vue from 'vue'
- import { mount } from '@vue/test-utils'
- import { Tree, VueTreeList } from '@/index'
- describe('Slot', () => {
- let wrapper
- beforeEach(() => {
- const tree = new Tree([
- {
- name: 'Node 1',
- id: 't1',
- pid: 0,
- children: [
- {
- name: 'Node 1-1',
- id: 't11',
- isLeaf: true,
- pid: 't1'
- }
- ]
- },
- {
- name: 'Node 2',
- id: 't2',
- pid: 0
- }
- ])
- wrapper = mount(VueTreeList, {
- propsData: { model: new Tree([]) },
- scopedSlots: {
- addTreeNodeIcon() {
- return <span class='add-tree-node-icon'>📂</span>
- },
- addLeafNodeIcon() {
- return <span class='icon'>+</span>
- },
- editNodeIcon() {
- return <span class='icon'>📃</span>
- },
- delNodeIcon(slotProps) {
- return slotProps.model.isLeaf || !slotProps.model.children ? (
- <span class='del-node-icon'>✂️</span>
- ) : (
- <span />
- )
- },
- leafNodeIcon() {
- return <span class='icon'>🍃</span>
- },
- treeNodeIcon(slotProps) {
- return (
- <span class='tree-node-icon icon'>
- {slotProps.model.children &&
- slotProps.model.children.length > 0 &&
- !slotProps.expanded
- ? '🌲'
- : '❀'}
- </span>
- )
- }
- }
- })
- wrapper.setProps({ model: tree })
- })
- it('render slot correctly', () => {
- expect(wrapper).toMatchSnapshot()
- })
- it('toggle tree node show different icon', done => {
- const $caretDown = wrapper.find('.vtl-icon-caret-down')
- expect(wrapper.find('#t1 .tree-node-icon').text()).toBe('❀')
- $caretDown.trigger('click')
- Vue.nextTick(() => {
- expect(wrapper.exists('.vtl-icon-caret-right')).toBe(true)
- expect(wrapper.find('#t1 .tree-node-icon').text()).toBe('🌲')
- done()
- })
- })
- it('dont show ✂️ after add child ', done => {
- const $addTreeNodeIcon = wrapper.find('#t2 .add-tree-node-icon')
- expect(wrapper.find('#t2 .del-node-icon').exists()).toBe(true)
- $addTreeNodeIcon.trigger('click')
- Vue.nextTick(() => {
- expect(wrapper.find('#t2 .del-node-icon').exists()).toBe(false)
- done()
- })
- })
- })
|