Bug: Props in child component defined in mixin are missing with `shallowMount` on @vue/compat
@xanf is already working on this.
Since Feb 12, 2024.
- Dominant language
- TypeScript
- Stars
- 1.2k
- Forks
- 291
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 18
Description
Describe the bug
With shallowMount on Vue 3 + @vue/compat, properties of a child component are undefined when using them through a mixin.
If the property is moved from the mixin directly to the component, then the property is defined.
Also if the shallowMount is switched to mount, the property is defined.
To Reproduce
I created a demo repo where this issue can be reproduced, with tags for various working and not working states. It includes the following important files:
- Parent Component: App.vue
- Child Component: HelloWorld.vue
- Mixin: HelloWorldMixin.js
- Test: App.test.js
git clone https://github.com/cody-collins/vue-compat-mixin-demo.git
cd vue-compat-mixin-demo
npm install
npm test
And the following tags:
- Working: Vue 2 + VTU 1
- Broken: Vue 3 + VTU 2
- Working: Vue 3 + VTU 2 +
mountinstead ofshallowMount - Working: Vue 3 + VTU 2 + props moved to component
Expected behavior
The second assertion should pass in the broken case
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.