fix(runtime-core): instanceWatch should pass this.proxy to source as the first argument (#2753)

This commit is contained in:
edison
2021-02-09 15:00:32 +08:00
committed by GitHub
parent bd1240c127
commit ec8fd10cec
2 changed files with 27 additions and 3 deletions

View File

@@ -15,7 +15,8 @@ import {
nodeOps,
serializeInner,
TestElement,
h
h,
createApp
} from '@vue/runtime-test'
import {
ITERATE_KEY,
@@ -857,4 +858,23 @@ describe('api: watch', () => {
expect(instance!.effects![0].active).toBe(false)
})
test('this.$watch should pass `this.proxy` to watch source as the first argument ', () => {
let instance: any
const source = jest.fn()
const Comp = defineComponent({
render() {},
created(this: any) {
instance = this
this.$watch(source, function() {})
}
})
const root = nodeOps.createElement('div')
createApp(Comp).mount(root)
expect(instance).toBeDefined()
expect(source).toHaveBeenCalledWith(instance)
})
})