fix(runtime-core): fix key/ref resolution for cloneVNode

fix #1041
This commit is contained in:
Evan You
2020-04-24 12:42:46 -04:00
parent dcf2458fa8
commit d7379c7647
2 changed files with 33 additions and 9 deletions

View File

@@ -198,6 +198,24 @@ describe('vnode', () => {
expect(cloned2).toEqual(node2)
expect(cloneVNode(node2)).toEqual(node2)
expect(cloneVNode(node2)).toEqual(cloned2)
// #1041 should use reoslved key/ref
expect(cloneVNode(createVNode('div', { key: 1 })).key).toBe(1)
expect(cloneVNode(createVNode('div', { key: 1 }), { key: 2 }).key).toBe(2)
expect(cloneVNode(createVNode('div'), { key: 2 }).key).toBe(2)
// ref normalizes to [currentRenderingInstance, ref]
expect(cloneVNode(createVNode('div', { ref: 'foo' })).ref).toEqual([
null,
'foo'
])
expect(
cloneVNode(createVNode('div', { ref: 'foo' }), { ref: 'bar' }).ref
).toEqual([null, 'bar'])
expect(cloneVNode(createVNode('div'), { ref: 'bar' }).ref).toEqual([
null,
'bar'
])
})
describe('mergeProps', () => {