id: 'test',
class: 'c' + count.value,
style: { color: count.value ? 'red' : 'green' },
- onClick: inc
+ onClick: inc,
+ 'data-id': 1
})
}
}
expect(node.getAttribute('class')).toBe('c2 c0')
expect(node.style.color).toBe('green')
expect(node.style.fontWeight).toBe('bold')
+ expect(node.dataset.id).toBe('1')
node.dispatchEvent(new CustomEvent('click'))
expect(click).toHaveBeenCalled()
if (key === 'key' || key === 'ref') continue
// prop option names are camelized during normalization, so to support
// kebab -> camel conversion here we need to camelize the key.
- const camelKey = camelize(key)
- if (hasDeclaredProps && !hasOwn(options, camelKey)) {
- // Any non-declared props are put into a separate `attrs` object
- // for spreading. Make sure to preserve original key casing
- ;(attrs || (attrs = {}))[key] = rawProps[key]
+ if (hasDeclaredProps) {
+ const camelKey = camelize(key)
+ if (hasOwn(options, camelKey)) {
+ setProp(camelKey, rawProps[key])
+ } else {
+ // Any non-declared props are put into a separate `attrs` object
+ // for spreading. Make sure to preserve original key casing
+ ;(attrs || (attrs = {}))[key] = rawProps[key]
+ }
} else {
- setProp(camelKey, rawProps[key])
+ setProp(key, rawProps[key])
}
}
}