Преглед на файлове

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

Evan You преди 6 години
родител
ревизия
3d16c0ea5a
променени са 2 файла, в които са добавени 9 реда и са изтрити 4 реда
  1. 4 3
      packages/runtime-test/__tests__/testRuntime.spec.ts
  2. 5 1
      packages/runtime-test/src/serialize.ts

+ 4 - 3
packages/runtime-test/__tests__/testRuntime.spec.ts

@@ -126,7 +126,8 @@ describe('test renderer', () => {
         return h(
         return h(
           'div',
           'div',
           {
           {
-            id: 'test'
+            id: 'test',
+            boolean: ''
           },
           },
           [h('span', 'foo'), 'hello']
           [h('span', 'foo'), 'hello']
         )
         )
@@ -135,12 +136,12 @@ describe('test renderer', () => {
     const root = nodeOps.createElement('div')
     const root = nodeOps.createElement('div')
     render(h(App), root)
     render(h(App), root)
     expect(serialize(root)).toEqual(
     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
     // indented output
     expect(serialize(root, 2)).toEqual(
     expect(serialize(root, 2)).toEqual(
       `<div>
       `<div>
-  <div id="test">
+  <div id="test" boolean>
     <span>
     <span>
       foo
       foo
     </span>
     </span>

+ 5 - 1
packages/runtime-test/src/serialize.ts

@@ -40,7 +40,11 @@ function serializeElement(
   const props = Object.keys(node.props)
   const props = Object.keys(node.props)
     .map(key => {
     .map(key => {
       const value = node.props[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)
     .filter(Boolean)
     .join(' ')
     .join(' ')