Procházet zdrojové kódy

fix(runtime-test): output empty attrs without value in seralized output

Evan You před 6 roky
rodič
revize
3d16c0ea5a

+ 4 - 3
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(
-      `<div><div id="test"><span>foo</span>hello</div></div>`
+      `<div><div id="test" boolean><span>foo</span>hello</div></div>`
     )
     // indented output
     expect(serialize(root, 2)).toEqual(
       `<div>
-  <div id="test">
+  <div id="test" boolean>
     <span>
       foo
     </span>

+ 5 - 1
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(' ')