Skip to content

Commit 610fe31

Browse files
bluemsnyyx990803
authored andcommitted
add unit test for dynamic with props (vuejs#4570)
add unit test for dynamic component with props
1 parent 4d9de6a commit 610fe31

File tree

1 file changed

+33
-4
lines changed

1 file changed

+33
-4
lines changed

test/unit/features/component/component.spec.js

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,23 +87,52 @@ describe('Component', () => {
8787
},
8888
components: {
8989
'view-a': {
90-
template: '<div>foo</div>',
90+
template: '<div>foo {{view}}</div>',
9191
data () {
9292
return { view: 'a' }
9393
}
9494
},
9595
'view-b': {
96-
template: '<div>bar</div>',
96+
template: '<div>bar {{view}}</div>',
9797
data () {
9898
return { view: 'b' }
9999
}
100100
}
101101
}
102102
}).$mount()
103-
expect(vm.$el.outerHTML).toBe('<div view="view-a">foo</div>')
103+
expect(vm.$el.outerHTML).toBe('<div view="view-a">foo a</div>')
104104
vm.view = 'view-b'
105105
waitForUpdate(() => {
106-
expect(vm.$el.outerHTML).toBe('<div view="view-b">bar</div>')
106+
expect(vm.$el.outerHTML).toBe('<div view="view-b">bar b</div>')
107+
vm.view = ''
108+
})
109+
.then(() => {
110+
expect(vm.$el.nodeType).toBe(8)
111+
expect(vm.$el.data).toBe('')
112+
}).then(done)
113+
})
114+
115+
it('dynamic with props', done => {
116+
const vm = new Vue({
117+
template: '<component :is="view" :view="view"></component>',
118+
data: {
119+
view: 'view-a'
120+
},
121+
components: {
122+
'view-a': {
123+
template: '<div>foo {{view}}</div>',
124+
props: ['view']
125+
},
126+
'view-b': {
127+
template: '<div>bar {{view}}</div>',
128+
props: ['view']
129+
}
130+
}
131+
}).$mount()
132+
expect(vm.$el.outerHTML).toBe('<div>foo view-a</div>')
133+
vm.view = 'view-b'
134+
waitForUpdate(() => {
135+
expect(vm.$el.outerHTML).toBe('<div>bar view-b</div>')
107136
vm.view = ''
108137
})
109138
.then(() => {

0 commit comments

Comments
 (0)