diff --git a/packages/runtime-dom/__tests__/patchProps.spec.ts b/packages/runtime-dom/__tests__/patchProps.spec.ts index fc5fdde057c..6ffa6845cea 100644 --- a/packages/runtime-dom/__tests__/patchProps.spec.ts +++ b/packages/runtime-dom/__tests__/patchProps.spec.ts @@ -1,7 +1,10 @@ import { patchProp } from '../src/patchProp' import { render, h } from '../src' +import { mockWarn } from '@vue/shared' describe('runtime-dom: props patching', () => { + mockWarn() + test('basic', () => { const el = document.createElement('div') patchProp(el, 'id', null, 'foo') @@ -92,4 +95,16 @@ describe('runtime-dom: props patching', () => { patchProp(el, 'srcObject', null, null) expect(el.srcObject).toBe(intiialValue) }) + + test('catch and warn prop set TypeError', () => { + const el = document.createElement('div') + Object.defineProperty(el, 'someProp', { + set() { + throw new TypeError('Invalid type') + } + }) + patchProp(el, 'someProp', null, 'foo') + + expect(`Failed setting prop "someProp" on