// prop with string value should be set to empty string on null values
patchProp(el, 'id', null, null)
expect(el.id).toBe('')
+ expect(el.getAttribute('id')).toBe(null)
})
test('value', () => {
expect(el.value).toBe('foo')
patchProp(el, 'value', null, null)
expect(el.value).toBe('')
+ expect(el.getAttribute('value')).toBe(null)
const obj = {}
patchProp(el, 'value', null, obj)
expect(el.value).toBe(obj.toString())
expect((el as any)._value).toBe(obj)
})
+ // For <input type="text">, setting el.value won't create a `value` attribute
+ // so we need to add tests for other elements
+ test('value for non-text input', () => {
+ const el = document.createElement('option')
+ patchProp(el, 'value', null, 'foo')
+ expect(el.value).toBe('foo')
+ patchProp(el, 'value', null, null)
+ expect(el.value).toBe('')
+ // #3475
+ expect(el.getAttribute('value')).toBe(null)
+ })
+
test('boolean prop', () => {
const el = document.createElement('select')
patchProp(el, 'multiple', null, '')