From: likui <2218301630@qq.com> Date: Mon, 30 Dec 2019 16:25:44 +0000 (+0800) Subject: test(vnode): add test for dynamic children (#563) X-Git-Tag: v3.0.0-alpha.1~10 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a7ef59c4c3b4dc0aa1e17a3b983258bb7cd66de3;p=thirdparty%2Fvuejs%2Fcore.git test(vnode): add test for dynamic children (#563) --- diff --git a/packages/runtime-core/__tests__/vnode.spec.ts b/packages/runtime-core/__tests__/vnode.spec.ts index beefbe550d..934b095286 100644 --- a/packages/runtime-core/__tests__/vnode.spec.ts +++ b/packages/runtime-core/__tests__/vnode.spec.ts @@ -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]) + }) + }) })