]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
test(vnode): add test for dynamic children (#563)
authorlikui <2218301630@qq.com>
Mon, 30 Dec 2019 16:25:44 +0000 (00:25 +0800)
committerEvan You <yyx990803@gmail.com>
Mon, 30 Dec 2019 16:25:44 +0000 (11:25 -0500)
packages/runtime-core/__tests__/vnode.spec.ts

index beefbe550dcca4ad9e84015ee1642f9598a5d267..934b095286585a6087e6a94d2ad613612f8f235a 100644 (file)
@@ -1,4 +1,4 @@
-import { createVNode } from '@vue/runtime-test'
+import { createBlock, createVNode, openBlock } from '@vue/runtime-test'
 import {
   ShapeFlags,
   Comment,
@@ -225,4 +225,34 @@ describe('vnode', () => {
       })
     })
   })
+
+  describe('dynamic children', () => {
+    test('single call openBlock', () => {
+      const hoist = createVNode('div')
+      let vnode1
+      const vnode = (openBlock(),
+      createBlock('div', null, [
+        hoist,
+        (vnode1 = createVNode('div', null, 'text', 1 /* TEXT */))
+      ]))
+      expect(vnode.dynamicChildren).toStrictEqual([vnode1])
+    })
+
+    test('many times call openBlock', () => {
+      const hoist = createVNode('div')
+      let vnode1, vnode2, vnode3
+      const vnode = (openBlock(),
+      createBlock('div', null, [
+        hoist,
+        (vnode1 = createVNode('div', null, 'text', 1 /* TEXT */)),
+        (vnode2 = (openBlock(),
+        createBlock('div', null, [
+          hoist,
+          (vnode3 = createVNode('div', null, 'text', 1 /* TEXT */))
+        ])))
+      ]))
+      expect(vnode.dynamicChildren).toStrictEqual([vnode1, vnode2])
+      expect(vnode2.dynamicChildren).toStrictEqual([vnode3])
+    })
+  })
 })