fix: add warnings (#82)

* fix: add warnings

- invalid watch handler path
- attempting to mutate readonly computed value
- attempt of mutating public property
- attempt of mutating prop

* fix: more descriptive warnings + details

* fix: test apiOptions warnings

* fix: update warning in componentProxy

* fix: update warnings in componentProxy & apiOptions

* fix: update warning in componentProxy

* fix: implemented tests for componentProxy

* fix: remove comment + small refactor
This commit is contained in:
Tim van den Eijnden
2019-10-09 20:03:21 +02:00
committed by Evan You
parent def27239bd
commit 0177355242
4 changed files with 86 additions and 5 deletions

View File

@@ -8,7 +8,8 @@ import {
nextTick,
renderToString,
ref,
createComponent
createComponent,
mockWarn
} from '@vue/runtime-test'
describe('api: options', () => {
@@ -505,4 +506,37 @@ describe('api: options', () => {
await nextTick()
expect(serializeInner(root)).toBe(`<div>1,1,3</div>`)
})
describe('warnings', () => {
mockWarn()
test('Expected a function as watch handler', () => {
const Comp = {
watch: {
foo: 'notExistingMethod'
},
render() {}
}
const root = nodeOps.createElement('div')
render(h(Comp), root)
expect(
'Invalid watch handler specified by key "notExistingMethod"'
).toHaveBeenWarned()
})
test('Invalid watch option', () => {
const Comp = {
watch: { foo: true },
render() {}
}
const root = nodeOps.createElement('div')
// @ts-ignore
render(h(Comp), root)
expect('Invalid watch option: "foo"').toHaveBeenWarned()
})
})
})