diff --git a/packages/runtime-core/__tests__/componentProps.spec.ts b/packages/runtime-core/__tests__/componentProps.spec.ts index 1cc43c91b..824458000 100644 --- a/packages/runtime-core/__tests__/componentProps.spec.ts +++ b/packages/runtime-core/__tests__/componentProps.spec.ts @@ -749,4 +749,39 @@ describe('component props', () => { 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: `
{{ foo }}
`, + }) + + const Comp = defineComponent({ + setup() { + return { + foo, + eventHandler, + } + }, + components: { Child }, + template: ``, + }) + + const root = document.createElement('div') + domRender(h(Comp), root) + expect(props).not.toHaveProperty('onEvent') + + foo.value++ + await nextTick() + expect(props).not.toHaveProperty('onEvent') + }) })