Skip to content

Commit 562fd33

Browse files
committed
fix: compile uncompiled components
fixes #329
1 parent fce6e6e commit 562fd33

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

Diff for: src/lib/compile-template.js

+8
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
import { compileToFunctions } from 'vue-template-compiler'
44

55
export function compileTemplate (component: Component) {
6+
if (component.components) {
7+
Object.keys(component.components).forEach((c) => {
8+
const cmp = component.components[c]
9+
if (!cmp.render) {
10+
compileTemplate(cmp)
11+
}
12+
})
13+
}
614
if (component.extends) {
715
compileTemplate(component.extends)
816
}

Diff for: test/unit/specs/mount/Wrapper/html.spec.js

+20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { compileToFunctions } from 'vue-template-compiler'
22
import { mount } from '~vue-test-utils'
33
import Component from '~resources/components/component.vue'
4+
import ComponentAsAClass from '~resources/components/component-as-a-class.vue'
45

56
describe('html', () => {
67
it('returns a VueWrappers HTML as a string', () => {
@@ -9,6 +10,25 @@ describe('html', () => {
910
expect(wrapper.html()).to.equal(expectedHtml)
1011
})
1112

13+
it('returns a VueWrappers HTML as a string when component has no render function', () => {
14+
const wrapper = mount({
15+
template: `<div>1<tester></tester></div>`,
16+
components: {
17+
tester: {
18+
template: `<div class="tester">test</div>`
19+
}
20+
}
21+
})
22+
const expectedHtml = '<div>1<div class="tester">test</div></div>'
23+
wrapper.update()
24+
expect(wrapper.html()).to.equal(expectedHtml)
25+
})
26+
27+
it('class component', () => {
28+
const wrapper = mount(ComponentAsAClass)
29+
expect(wrapper.html()).to.equal('<div></div>')
30+
})
31+
1232
it('returns a Wrappers HTML as a string', () => {
1333
const expectedHtml = '<input id="input-submit" type="submit" class="input-submit">'
1434
const compiled = compileToFunctions(expectedHtml)

0 commit comments

Comments
 (0)