Files
element-plus/packages/utils/__tests__/vue/vnode.test.ts
Noblet Ouways 630b66f4cc refactor: remove unused code related to tooltip-v2 (#22304)
* refactor: remove unused code related to tooltip-v2

* test: redo & rewrite refs test
2025-09-24 08:49:29 +08:00

95 lines
2.1 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import { flattedChildren } from '../..'
describe('flattedChildren', () => {
it('Component vnode has no child nodes.', () => {
const vnode = {
__v_isVNode: true,
type: {
__name: 'Comp',
},
component: {
subTree: {
type: 'div',
children: 'text',
},
},
}
const flattedVNodes = flattedChildren(vnode)
expect(flattedVNodes).toContain(vnode)
})
it('Component VNode has child nodes.', () => {
const childVNode = {
__v_isVNode: true,
type: {
__name: 'Child',
},
component: {
subTree: {
type: 'div',
children: 'text',
},
},
}
const parentVNode = {
__v_isVNode: true,
type: {
__name: 'Parent',
},
component: {
subTree: childVNode,
},
}
const flattedVNodes = flattedChildren(parentVNode)
expect(flattedVNodes).toContain(parentVNode)
expect(flattedVNodes).toContain(childVNode)
})
it('Component VNode has a slot, and the children passed in through the h function are object.', () => {
const slotVNode = {
__v_isVNode: true,
type: 'div',
children: 'text',
}
const vnode = {
__v_isVNode: true,
type: {
__name: 'Child',
},
component: {
subTree: slotVNode,
},
children: {
default() {
return slotVNode
},
},
}
const flattedVNodes = flattedChildren(vnode)
expect(flattedVNodes).toContain(vnode)
expect(flattedVNodes).toContain(slotVNode)
})
it('Component VNode has a slot, and the children passed in through the h function are array.', () => {
const slotVNode = {
__v_isVNode: true,
type: 'div',
children: 'text',
}
const vnode = {
__v_isVNode: true,
type: {
__name: 'Child',
},
component: {
subTree: slotVNode,
},
children: [slotVNode],
}
const flattedVNodes = flattedChildren(vnode)
expect(flattedVNodes).toContain(vnode)
expect(flattedVNodes).toContain(slotVNode)
})
})