Comments (5)
@dobromir-hristov is looking into this. The idea is looking to be to provide this as a config users can enable, so you can have the behavior you like. eg config.shallowMount = { renderSlots: true }
or something, since the default is stubbing them.
from test-utils.
Another use case for this to shallow mount a view/component that contains a 3rd-party component. Where you don't want to load the complexity of that 3rd party component, but you do want to test your code being passed into the slot. It can make snapshots more useful and less cluttered.
from test-utils.
So what does does, is render all the slots of a component? For simpler cases (pure unit tests) I guess that would be OK, when you dont rely on scopedSlots or slots rendering conditionally.
Even though it makes sense, I think this will either have to stay in user land, or will be exported as a separate utility, similar to what you have now.
Current implementation is: stubbed components are just plain elements tags, that do not render any of their slots.
from test-utils.
It's not documented anywhere because it's not intended behavior, but rather a side effect of poorly implemented shallow
, which should be stubbing all children (and their slots).
You are welcome to play with the transformVNodeArgs
function used here - it's built into core with stubbing in mind. Maybe we can expose some kind of plugin for this. What is supposed to happen? Does the child's lifecycle hooks get called? What if it has more components with more slots? If we are attempting to provide this feature (core or plugin) we should define exactly what it should (and should not) do.
I agree that this probably doesn't really belong as a core behavior; no other testing frameworks do this, and they get by fine (including Enzyme, which has a shallow
function).
from test-utils.
Let's chat about this in here #108
This could be a helper. I don't mind having this feature.
from test-utils.
Related Issues (20)
- Bug: Cannot acess global plugin in test file (wrapper.vm.$plugin) HOT 3
- Bug: findComponent doesn't work properly if child component is root of parent component HOT 2
- Bug: References to objects are lost when emitting events from child component HOT 2
- Feature request: respect devtools definition HOT 6
- Return type confusing, generics not working HOT 2
- Bug: no exported member 'PublicProps' HOT 4
- Bug: Submit event from form does not get caught in unit test HOT 3
- Bug: Errors during $setup are hidden and cause the template to be rendered with undefined properties HOT 6
- Bug: incompatibility with latest nuxt HOT 1
- Vue Warn, Error Handlers HOT 5
- Feature request: setSlots - Updates component slots HOT 2
- Bug: type inference for components is not on par with `defineComponent` HOT 1
- Bug: Props in child component defined in mixin are missing with `shallowMount` on @vue/compat HOT 2
- Bug: execute imports code in a component's children despite being stubbed HOT 2
- Feature request: update teleport testing documentation HOT 1
- Bug: snapshots are mismatching on different platforms HOT 8
- Bug: wrapper.findComponent no longer working after upgrading to 2.4.2 HOT 6
- Bug: clicking button type submit doesn't trigger submit event HOT 2
- Bug: can't pass a prop to a stubbed custom element using a `.prop` modifier HOT 1
- chore(docs): translate the documentation to portuguese
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from test-utils.