expect(`Invalid prop name: "ref"`).toHaveBeenWarned()
expect(`Invalid prop name: "$foo"`).toHaveBeenWarned()
})
+
+ // #5517
+ test('events should not be props when component updating', async () => {
+ let props: any
+ function eventHandler() {}
+ const foo = ref(1)
+
+ const Child = defineComponent({
+ setup(_props) {
+ props = _props
+ },
+ emits: ['event'],
+ props: ['foo'],
+ template: `<div>{{ foo }}</div>`,
+ })
+
+ const Comp = defineComponent({
+ setup() {
+ return {
+ foo,
+ eventHandler,
+ }
+ },
+ components: { Child },
+ template: `<Child @event="eventHandler" :foo="foo" />`,
+ })
+
+ const root = document.createElement('div')
+ domRender(h(Comp), root)
+ expect(props).not.toHaveProperty('onEvent')
+
+ foo.value++
+ await nextTick()
+ expect(props).not.toHaveProperty('onEvent')
+ })
})