@@ -10,7 +10,8 @@ import {
|
||||
withDirectives,
|
||||
Plugin,
|
||||
ref,
|
||||
getCurrentInstance
|
||||
getCurrentInstance,
|
||||
defineComponent
|
||||
} from '@vue/runtime-test'
|
||||
import { mockWarn } from '@vue/shared'
|
||||
|
||||
@@ -18,16 +19,16 @@ describe('api: createApp', () => {
|
||||
mockWarn()
|
||||
|
||||
test('mount', () => {
|
||||
const Comp = {
|
||||
const Comp = defineComponent({
|
||||
props: {
|
||||
count: {
|
||||
default: 0
|
||||
}
|
||||
},
|
||||
setup(props: { count: number }) {
|
||||
setup(props) {
|
||||
return () => props.count
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const root1 = nodeOps.createElement('div')
|
||||
createApp(Comp).mount(root1)
|
||||
@@ -47,16 +48,16 @@ describe('api: createApp', () => {
|
||||
})
|
||||
|
||||
test('unmount', () => {
|
||||
const Comp = {
|
||||
const Comp = defineComponent({
|
||||
props: {
|
||||
count: {
|
||||
default: 0
|
||||
}
|
||||
},
|
||||
setup(props: { count: number }) {
|
||||
setup(props) {
|
||||
return () => props.count
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
const root = nodeOps.createElement('div')
|
||||
const app = createApp(Comp)
|
||||
|
||||
@@ -9,7 +9,8 @@ import {
|
||||
serializeInner,
|
||||
serialize,
|
||||
VNodeProps,
|
||||
KeepAlive
|
||||
KeepAlive,
|
||||
TestElement
|
||||
} from '@vue/runtime-test'
|
||||
|
||||
function mount(
|
||||
@@ -42,13 +43,13 @@ function mockProps(extra: BaseTransitionProps = {}, withKeepAlive = false) {
|
||||
}
|
||||
}),
|
||||
onEnter: jest.fn((el, done) => {
|
||||
cbs.doneEnter[serialize(el)] = done
|
||||
cbs.doneEnter[serialize(el as TestElement)] = done
|
||||
}),
|
||||
onAfterEnter: jest.fn(),
|
||||
onEnterCancelled: jest.fn(),
|
||||
onBeforeLeave: jest.fn(),
|
||||
onLeave: jest.fn((el, done) => {
|
||||
cbs.doneLeave[serialize(el)] = done
|
||||
cbs.doneLeave[serialize(el as TestElement)] = done
|
||||
}),
|
||||
onAfterLeave: jest.fn(),
|
||||
onLeaveCancelled: jest.fn(),
|
||||
@@ -64,8 +65,10 @@ function assertCalls(
|
||||
props: BaseTransitionProps,
|
||||
calls: Record<string, number>
|
||||
) {
|
||||
Object.keys(calls).forEach((key: keyof BaseTransitionProps) => {
|
||||
expect(props[key]).toHaveBeenCalledTimes(calls[key])
|
||||
Object.keys(calls).forEach(key => {
|
||||
expect(props[key as keyof BaseTransitionProps]).toHaveBeenCalledTimes(
|
||||
calls[key]
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -147,19 +150,19 @@ describe('BaseTransition', () => {
|
||||
const toggle = ref(true)
|
||||
const hooks: VNodeProps = {
|
||||
onVnodeBeforeMount(vnode) {
|
||||
vnode.transition!.beforeEnter(vnode.el)
|
||||
vnode.transition!.beforeEnter(vnode.el!)
|
||||
},
|
||||
onVnodeMounted(vnode) {
|
||||
vnode.transition!.enter(vnode.el)
|
||||
vnode.transition!.enter(vnode.el!)
|
||||
},
|
||||
onVnodeUpdated(vnode, oldVnode) {
|
||||
if (oldVnode.props!.id !== vnode.props!.id) {
|
||||
if (vnode.props!.id) {
|
||||
vnode.transition!.beforeEnter(vnode.el)
|
||||
vnode.transition!.beforeEnter(vnode.el!)
|
||||
state.show = true
|
||||
vnode.transition!.enter(vnode.el)
|
||||
vnode.transition!.enter(vnode.el!)
|
||||
} else {
|
||||
vnode.transition!.leave(vnode.el, () => {
|
||||
vnode.transition!.leave(vnode.el!, () => {
|
||||
state.show = false
|
||||
})
|
||||
}
|
||||
|
||||
@@ -19,7 +19,9 @@ function mountWithHydration(html: string, render: () => any) {
|
||||
render
|
||||
})
|
||||
return {
|
||||
vnode: app.mount(container).$.subTree,
|
||||
vnode: app.mount(container).$.subTree as VNode<Node, Element> & {
|
||||
el: Element
|
||||
},
|
||||
container
|
||||
}
|
||||
}
|
||||
@@ -90,7 +92,7 @@ describe('SSR hydration', () => {
|
||||
)
|
||||
|
||||
// event handler
|
||||
triggerEvent('click', vnode.el.querySelector('.foo'))
|
||||
triggerEvent('click', vnode.el.querySelector('.foo')!)
|
||||
expect(fn).toHaveBeenCalled()
|
||||
|
||||
msg.value = 'bar'
|
||||
@@ -120,7 +122,7 @@ describe('SSR hydration', () => {
|
||||
const fragment1Children = fragment1.children as VNode[]
|
||||
|
||||
// first <span>
|
||||
expect(fragment1Children[0].el.tagName).toBe('SPAN')
|
||||
expect(fragment1Children[0].el!.tagName).toBe('SPAN')
|
||||
expect(fragment1Children[0].el).toBe(vnode.el.childNodes[1])
|
||||
|
||||
// start fragment 2
|
||||
@@ -129,7 +131,7 @@ describe('SSR hydration', () => {
|
||||
const fragment2Children = fragment2.children as VNode[]
|
||||
|
||||
// second <span>
|
||||
expect(fragment2Children[0].el.tagName).toBe('SPAN')
|
||||
expect(fragment2Children[0].el!.tagName).toBe('SPAN')
|
||||
expect(fragment2Children[0].el).toBe(vnode.el.childNodes[3])
|
||||
|
||||
// end fragment 2
|
||||
@@ -139,7 +141,7 @@ describe('SSR hydration', () => {
|
||||
expect(fragment1.anchor).toBe(vnode.el.childNodes[5])
|
||||
|
||||
// event handler
|
||||
triggerEvent('click', vnode.el.querySelector('.foo'))
|
||||
triggerEvent('click', vnode.el.querySelector('.foo')!)
|
||||
expect(fn).toHaveBeenCalled()
|
||||
|
||||
msg.value = 'bar'
|
||||
|
||||
Reference in New Issue
Block a user