|
|
@@ -92,6 +92,16 @@ describe('Error handling', () => {
|
|
|
}).then(done)
|
|
|
})
|
|
|
|
|
|
+ it('should recover from errors in user immediate watcher callback', done => {
|
|
|
+ const vm = createTestInstance(components.userImmediateWatcherCallback)
|
|
|
+ waitForUpdate(() => {
|
|
|
+ expect(`Error in callback for immediate watcher "n"`).toHaveBeenWarned()
|
|
|
+ expect(`Error: userImmediateWatcherCallback error`).toHaveBeenWarned()
|
|
|
+ }).thenWaitFor(next => {
|
|
|
+ assertBothInstancesActive(vm).end(next)
|
|
|
+ }).then(done)
|
|
|
+ })
|
|
|
+
|
|
|
it('config.errorHandler should capture render errors', done => {
|
|
|
const spy = Vue.config.errorHandler = jasmine.createSpy('errorHandler')
|
|
|
const vm = createTestInstance(components.render)
|
|
|
@@ -234,6 +244,21 @@ function createErrorTestComponents () {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ components.userImmediateWatcherCallback = {
|
|
|
+ props: ['n'],
|
|
|
+ watch: {
|
|
|
+ n: {
|
|
|
+ immediate: true,
|
|
|
+ handler () {
|
|
|
+ throw new Error('userImmediateWatcherCallback error')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ render (h) {
|
|
|
+ return h('div', this.n)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
// event errors
|
|
|
components.event = {
|
|
|
beforeCreate () {
|