import Vue from 'vue' describe('Options renderError', () => { it('should be used on render errors', done => { Vue.config.errorHandler = () => {} const vm = new Vue({ data: { ok: true }, render(h) { if (this.ok) { return h('div', 'ok') } else { throw new Error('no') } }, renderError(h, err) { return h('div', err.toString()) } }).$mount() expect(vm.$el.textContent).toBe('ok') vm.ok = false waitForUpdate(() => { expect(vm.$el.textContent).toBe('Error: no') Vue.config.errorHandler = undefined }).then(done) }) it('should pass on errors in renderError to global handler', () => { const spy = (Vue.config.errorHandler = vi.fn()) const err = new Error('renderError') const vm = new Vue({ render() { throw new Error('render') }, renderError() { throw err } }).$mount() expect(spy).toHaveBeenCalledWith(err, vm, 'renderError') }) })