diff --git a/packages/runtime-test/__tests__/testRuntime.spec.ts b/packages/runtime-test/__tests__/testRuntime.spec.ts
index 22a813cbaa5..077ea68e056 100644
--- a/packages/runtime-test/__tests__/testRuntime.spec.ts
+++ b/packages/runtime-test/__tests__/testRuntime.spec.ts
@@ -128,14 +128,20 @@ describe('test renderer', () => {
{
id: 'test'
},
- [h('span', 'foo'), 'hello']
+ [
+ h('span', 'foo'),
+ 'hello',
+ h('br', {
+ id: 'br'
+ })
+ ]
)
}
}
const root = nodeOps.createElement('div')
render(h(App), root)
expect(serialize(root)).toEqual(
- `
`
+ ``
)
// indented output
expect(serialize(root, 2)).toEqual(
@@ -145,6 +151,7 @@ describe('test renderer', () => {
foo
hello
+
`
)
diff --git a/packages/runtime-test/src/serialize.ts b/packages/runtime-test/src/serialize.ts
index 72ed03d2e0d..ff781e50b52 100644
--- a/packages/runtime-test/src/serialize.ts
+++ b/packages/runtime-test/src/serialize.ts
@@ -32,6 +32,25 @@ export function serializeInner(
: ``
}
+const voidTags = [
+ 'area',
+ 'base',
+ 'br',
+ 'col',
+ 'command',
+ 'embed',
+ 'hr',
+ 'img',
+ 'input',
+ 'keygen',
+ 'link',
+ 'meta',
+ 'param',
+ 'source',
+ 'track',
+ 'wbr'
+]
+
function serializeElement(
node: TestElement,
indent: number,
@@ -45,6 +64,9 @@ function serializeElement(
.filter(_ => _)
.join(' ')
const padding = indent ? ` `.repeat(indent).repeat(depth) : ``
+ if (voidTags.includes(node.tag)) {
+ return `${padding}<${node.tag}${props ? ` ${props}` : ``}/>`
+ }
return (
`${padding}<${node.tag}${props ? ` ${props}` : ``}>` +
`${serializeInner(node, indent, depth)}` +