diff --git a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap index 1884981fd..29eced80f 100644 --- a/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap +++ b/packages/compiler-vapor/__tests__/__snapshots__/compile.spec.ts.snap @@ -12,6 +12,16 @@ export function render(_ctx) { }" `; +exports[`compile > component close tag 1`] = ` +"import { template as _template } from 'vue/vapor'; +const t0 = _template("
") + +export function render(_ctx) { + const n0 = t0() + return n0 +}" +`; + exports[`compile > custom directive > basic 1`] = ` "import { children as _children, resolveDirective as _resolveDirective, withDirectives as _withDirectives, template as _template } from 'vue/vapor'; const t0 = _template("
") @@ -130,7 +140,7 @@ export function render(_ctx) { exports[`compile > directives > v-pre > self-closing v-pre 1`] = ` "import { children as _children, createTextNode as _createTextNode, append as _append, renderEffect as _renderEffect, setText as _setText, setDynamicProp as _setDynamicProp, template as _template } from 'vue/vapor'; -const t0 = _template("
") +const t0 = _template("
") export function render(_ctx) { const n0 = t0() @@ -145,7 +155,7 @@ export function render(_ctx) { exports[`compile > directives > v-pre > should not affect siblings after it 1`] = ` "import { children as _children, createTextNode as _createTextNode, append as _append, renderEffect as _renderEffect, setText as _setText, setDynamicProp as _setDynamicProp, template as _template } from 'vue/vapor'; -const t0 = _template("
{{ bar }}
") +const t0 = _template("
{{ bar }}
") export function render(_ctx) { const n0 = t0() diff --git a/packages/compiler-vapor/__tests__/compile.spec.ts b/packages/compiler-vapor/__tests__/compile.spec.ts index 23ba98882..0d81ff838 100644 --- a/packages/compiler-vapor/__tests__/compile.spec.ts +++ b/packages/compiler-vapor/__tests__/compile.spec.ts @@ -21,6 +21,11 @@ describe('compile', () => { ) expect(code).matchSnapshot() }) + test('component close tag', () => { + const code = compile(`
`) + expect(code).matchSnapshot() + expect(code).contains(JSON.stringify('
')) + }) test('dynamic root', () => { const code = compile(`{{ 1 }}{{ 2 }}`) @@ -96,7 +101,7 @@ describe('compile', () => { ) expect(code).toMatchSnapshot() - expect(code).contains('
') + expect(code).contains('
') // Waiting for TODO, There should be more here. }) }) diff --git a/packages/compiler-vapor/src/transforms/transformElement.ts b/packages/compiler-vapor/src/transforms/transformElement.ts index 8aed3a9e3..a9a10a3aa 100644 --- a/packages/compiler-vapor/src/transforms/transformElement.ts +++ b/packages/compiler-vapor/src/transforms/transformElement.ts @@ -61,7 +61,11 @@ export const transformElement: NodeTransform = (node, context) => { // TODO remove unnecessary close tag, e.g. if it's the last element of the template if (!isVoidTag(tag)) { - context.template += `` + if (node.tagType === ElementTypes.COMPONENT) { + context.template = `<${tag}/>` + } else { + context.template += `` + } } } }