From 3d16c0ea5af6f08e3e3913d6d35fba6dbd84de1d Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 17 Dec 2019 11:50:10 -0500 Subject: [PATCH] fix(runtime-test): output empty attrs without value in seralized output --- packages/runtime-test/__tests__/testRuntime.spec.ts | 7 ++++--- packages/runtime-test/src/serialize.ts | 6 +++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/runtime-test/__tests__/testRuntime.spec.ts b/packages/runtime-test/__tests__/testRuntime.spec.ts index ce98d4d5..ec7cbb21 100644 --- a/packages/runtime-test/__tests__/testRuntime.spec.ts +++ b/packages/runtime-test/__tests__/testRuntime.spec.ts @@ -126,7 +126,8 @@ describe('test renderer', () => { return h( 'div', { - id: 'test' + id: 'test', + boolean: '' }, [h('span', 'foo'), 'hello'] ) @@ -135,12 +136,12 @@ describe('test renderer', () => { const root = nodeOps.createElement('div') render(h(App), root) expect(serialize(root)).toEqual( - `
foohello
` + `
foohello
` ) // indented output expect(serialize(root, 2)).toEqual( `
-
+
foo diff --git a/packages/runtime-test/src/serialize.ts b/packages/runtime-test/src/serialize.ts index 57a3e7a5..52c79b7d 100644 --- a/packages/runtime-test/src/serialize.ts +++ b/packages/runtime-test/src/serialize.ts @@ -40,7 +40,11 @@ function serializeElement( const props = Object.keys(node.props) .map(key => { const value = node.props[key] - return isOn(key) || value == null ? `` : `${key}=${JSON.stringify(value)}` + return isOn(key) || value == null + ? `` + : value === `` + ? key + : `${key}=${JSON.stringify(value)}` }) .filter(Boolean) .join(' ')