fix(runtime-dom): consistently remove boolean attributes for falsy values (#4348)

This commit is contained in:
skirtle
2021-08-16 23:18:36 +01:00
committed by GitHub
parent f855ccb2c1
commit 620a69b871
12 changed files with 70 additions and 22 deletions

View File

@@ -23,6 +23,18 @@ describe('runtime-dom: attrs patching', () => {
expect(el.getAttribute('readonly')).toBe('')
patchProp(el, 'readonly', true, false)
expect(el.getAttribute('readonly')).toBe(null)
patchProp(el, 'readonly', false, '')
expect(el.getAttribute('readonly')).toBe('')
patchProp(el, 'readonly', '', 0)
expect(el.getAttribute('readonly')).toBe(null)
patchProp(el, 'readonly', 0, '0')
expect(el.getAttribute('readonly')).toBe('')
patchProp(el, 'readonly', '0', false)
expect(el.getAttribute('readonly')).toBe(null)
patchProp(el, 'readonly', false, 1)
expect(el.getAttribute('readonly')).toBe('')
patchProp(el, 'readonly', 1, undefined)
expect(el.getAttribute('readonly')).toBe(null)
})
test('attributes', () => {

View File

@@ -43,6 +43,18 @@ describe('runtime-dom: props patching', () => {
expect(el.multiple).toBe(true)
patchProp(el, 'multiple', null, null)
expect(el.multiple).toBe(false)
patchProp(el, 'multiple', null, true)
expect(el.multiple).toBe(true)
patchProp(el, 'multiple', null, 0)
expect(el.multiple).toBe(false)
patchProp(el, 'multiple', null, '0')
expect(el.multiple).toBe(true)
patchProp(el, 'multiple', null, false)
expect(el.multiple).toBe(false)
patchProp(el, 'multiple', null, 1)
expect(el.multiple).toBe(true)
patchProp(el, 'multiple', null, undefined)
expect(el.multiple).toBe(false)
})
test('innerHTML unmount prev children', () => {