|
|
@@ -1,20 +1,14 @@
|
|
|
import Vue from 'vue'
|
|
|
-import { renderState } from 'core/instance/render'
|
|
|
import { createElement } from 'core/vdom/create-element'
|
|
|
import { emptyVNode } from 'core/vdom/vnode'
|
|
|
import { bind } from 'shared/util'
|
|
|
|
|
|
describe('create-element', () => {
|
|
|
- afterEach(() => {
|
|
|
- renderState.activeInstance = null
|
|
|
- })
|
|
|
-
|
|
|
it('render vnode with basic reserved tag using createElement', () => {
|
|
|
const vm = new Vue({
|
|
|
data: { msg: 'hello world' }
|
|
|
})
|
|
|
const h = bind(createElement, vm)
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h('p', {})
|
|
|
expect(vnode.tag).toBe('p')
|
|
|
expect(vnode.data).toEqual({})
|
|
|
@@ -35,7 +29,6 @@ describe('create-element', () => {
|
|
|
}
|
|
|
})
|
|
|
const h = bind(createElement, vm)
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h('my-component', { props: { msg: vm.message }})
|
|
|
expect(vnode.tag).toMatch(/vue-component-[0-9]+/)
|
|
|
expect(vnode.componentOptions.propsData).toEqual({ msg: vm.message })
|
|
|
@@ -52,7 +45,6 @@ describe('create-element', () => {
|
|
|
})
|
|
|
const h = bind(createElement, vm)
|
|
|
const tag = 'custom-tag'
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h(tag, {})
|
|
|
expect(vnode.tag).toBe('custom-tag')
|
|
|
expect(vnode.data).toEqual({})
|
|
|
@@ -69,7 +61,6 @@ describe('create-element', () => {
|
|
|
data: { msg: 'hello world' }
|
|
|
})
|
|
|
const h = bind(createElement, vm)
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h(null, {})
|
|
|
expect(vnode).toEqual(emptyVNode())
|
|
|
})
|
|
|
@@ -79,7 +70,6 @@ describe('create-element', () => {
|
|
|
data: { msg: 'hello world' }
|
|
|
})
|
|
|
const h = bind(createElement, vm)
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h(Vue.extend({ // Component class
|
|
|
props: ['msg']
|
|
|
}), { props: { msg: vm.message }})
|
|
|
@@ -92,19 +82,9 @@ describe('create-element', () => {
|
|
|
expect(vnode.context).toEqual(vm)
|
|
|
})
|
|
|
|
|
|
- it('warn message that createElement cannot called when using createElement', () => {
|
|
|
- const vm = new Vue({
|
|
|
- data: { msg: 'hello world' }
|
|
|
- })
|
|
|
- const h = bind(createElement, vm)
|
|
|
- h('p', {})
|
|
|
- expect('createElement cannot be called outside of component').toHaveBeenWarned()
|
|
|
- })
|
|
|
-
|
|
|
it('render vnode with createElement with children', () => {
|
|
|
const vm = new Vue({})
|
|
|
const h = bind(createElement, vm)
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h('p', void 0, [h('br'), 'hello world', h('br')])
|
|
|
expect(vnode.children[0].tag).toBe('br')
|
|
|
expect(vnode.children[1].text).toBe('hello world')
|
|
|
@@ -114,7 +94,6 @@ describe('create-element', () => {
|
|
|
it('render vnode with children, omitting data', () => {
|
|
|
const vm = new Vue({})
|
|
|
const h = bind(createElement, vm)
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h('p', [h('br'), 'hello world', h('br')])
|
|
|
expect(vnode.children[0].tag).toBe('br')
|
|
|
expect(vnode.children[1].text).toBe('hello world')
|
|
|
@@ -124,7 +103,6 @@ describe('create-element', () => {
|
|
|
it('render svg elements with correct namespace', () => {
|
|
|
const vm = new Vue({})
|
|
|
const h = bind(createElement, vm)
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h('svg', [h('a', [h('foo', [h('bar')])])])
|
|
|
expect(vnode.ns).toBe('svg')
|
|
|
// should apply ns to children recursively
|
|
|
@@ -136,7 +114,6 @@ describe('create-element', () => {
|
|
|
it('render MathML elements with correct namespace', () => {
|
|
|
const vm = new Vue({})
|
|
|
const h = bind(createElement, vm)
|
|
|
- renderState.activeInstance = vm
|
|
|
const vnode = h('math', [h('matrix')])
|
|
|
expect(vnode.ns).toBe('math')
|
|
|
// should apply ns to children
|