|
|
@@ -29,4 +29,27 @@ describe('vdom domProps module', () => {
|
|
|
const elm = patch(null, vnode)
|
|
|
expect(elm.value).toBe('0')
|
|
|
})
|
|
|
+
|
|
|
+ it('should save raw value on element', () => {
|
|
|
+ const value = {}
|
|
|
+ const vnode = new VNode('input', { domProps: { value }})
|
|
|
+ const elm = patch(null, vnode)
|
|
|
+ expect(elm._value).toBe(value)
|
|
|
+ })
|
|
|
+
|
|
|
+ it('should discard vnode children if the node has innerHTML or textContent as a prop', () => {
|
|
|
+ const vnode = new VNode('div', { domProps: { innerHTML: 'hi' }}, [
|
|
|
+ new VNode('span'), new VNode('span')
|
|
|
+ ])
|
|
|
+ const elm = patch(null, vnode)
|
|
|
+ expect(elm.innerHTML).toBe('hi')
|
|
|
+ expect(vnode.children.length).toBe(0)
|
|
|
+
|
|
|
+ const vnode2 = new VNode('div', { domProps: { textContent: 'hi' }}, [
|
|
|
+ new VNode('span'), new VNode('span')
|
|
|
+ ])
|
|
|
+ const elm2 = patch(null, vnode2)
|
|
|
+ expect(elm2.textContent).toBe('hi')
|
|
|
+ expect(vnode2.children.length).toBe(0)
|
|
|
+ })
|
|
|
})
|