Ver código fonte

improve hydration test case

Evan You 10 anos atrás
pai
commit
cc06868882
1 arquivos alterados com 23 adições e 0 exclusões
  1. 23 0
      test/unit/modules/vdom/patch/hydration.spec.js

+ 23 - 0
test/unit/modules/vdom/patch/hydration.spec.js

@@ -35,6 +35,29 @@ describe('hydration', () => {
     ])
     patch(node0, vnode1)
     expect(result.length).toBe(1)
+
+    function traverseAndAssert (vnode, element) {
+      expect(vnode.elm).toBe(element)
+      if (vnode.children) {
+        vnode.children.forEach((node, i) => {
+          traverseAndAssert(node, element.childNodes[i])
+        })
+      }
+    }
+    // ensure vnodes are correctly associated with actual DOM
+    traverseAndAssert(vnode1, node0)
+
+    // check update
+    const vnode2 = new VNode('div', { props: { id: 'foo' }}, [
+      new VNode('span', { props: { id: 'bar' }}),
+      new VNode('div', { hook: { init }}, [
+        new VNode('span', {}),
+        new VNode('span', {})
+      ])
+    ])
+    patch(vnode1, vnode2)
+    expect(node0.id).toBe('foo')
+    expect(node0.children[0].id).toBe('bar')
   })
 
   it('should hydrate components when server-rendered DOM tree is same as virtual DOM tree', () => {