`)
})
+ //#8072
+ test(`fallthrough component content (with whitespace: 'preserve')`, () => {
+ expect(
+ compile(
+ `
+ <a v-if="to">Foo</a>
+ <a v-else>Bar</a>
+ `,
+ {
+ whitespace: 'preserve',
+ },
+ ).code,
+ ).toMatchInlineSnapshot(`
+ "const { ssrRenderAttrs: _ssrRenderAttrs } = require("vue/server-renderer")
+
+ return function ssrRender(_ctx, _push, _parent, _attrs) {
+ if (_ctx.to) {
+ _push(\`<a\${_ssrRenderAttrs(_attrs)}>Foo</a>\`)
+ } else {
+ _push(\`<a\${_ssrRenderAttrs(_attrs)}>Bar</a>\`)
+ }
+ }"
+ `)
+ })
+
test('should not inject to fallthrough component content if not root', () => {
expect(compile(`<div/><transition><div/></transition>`).code)
.toMatchInlineSnapshot(`
} from '@vue/compiler-dom'
const filterChild = (node: ParentNode) =>
- node.children.filter(n => n.type !== NodeTypes.COMMENT)
+ node.children.filter(
+ n => n.type !== NodeTypes.COMMENT && n.type !== NodeTypes.TEXT,
+ )
const hasSingleChild = (node: ParentNode): boolean =>
filterChild(node).length === 1