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( - `
foohello
` + `
foohello
` ) // 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)}` +