fix(ssr): fix escape and handling for raw Text, Comment and Static vnodes
This commit is contained in:
@@ -6,7 +6,9 @@ import {
|
||||
resolveComponent,
|
||||
ComponentOptions,
|
||||
ref,
|
||||
defineComponent
|
||||
defineComponent,
|
||||
createTextVNode,
|
||||
createStaticVNode
|
||||
} from 'vue'
|
||||
import { escapeHtml, mockWarn } from '@vue/shared'
|
||||
import { renderToString, renderComponent } from '../src/renderToString'
|
||||
@@ -511,6 +513,33 @@ describe('ssr: renderToString', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('raw vnode types', () => {
|
||||
test('Text', async () => {
|
||||
expect(await renderToString(createTextVNode('hello <div>'))).toBe(
|
||||
`hello <div>`
|
||||
)
|
||||
})
|
||||
|
||||
test('Comment', async () => {
|
||||
// https://www.w3.org/TR/html52/syntax.html#comments
|
||||
expect(
|
||||
await renderToString(
|
||||
h('div', [
|
||||
createCommentVNode('>foo'),
|
||||
createCommentVNode('->foo'),
|
||||
createCommentVNode('<!--foo-->'),
|
||||
createCommentVNode('--!>foo<!-')
|
||||
])
|
||||
)
|
||||
).toBe(`<div><!--foo--><!--foo--><!--foo--><!--foo--></div>`)
|
||||
})
|
||||
|
||||
test('Static', async () => {
|
||||
const content = `<div id="ok">hello<span>world</span></div>`
|
||||
expect(await renderToString(createStaticVNode(content))).toBe(content)
|
||||
})
|
||||
})
|
||||
|
||||
describe('scopeId', () => {
|
||||
// note: here we are only testing scopeId handling for vdom serialization.
|
||||
// compiled srr render functions will include scopeId directly in strings.
|
||||
|
||||
Reference in New Issue
Block a user