I created a component, whose action uses store service. How can I stub this action from integration test?
// app/components/invoice-form.js
export default Ember.Component.extend({
actions: {
loadPartners() {
let self = this;
this.get('store').findAll('partner').then(function(partners) {
self.set('partners', partners);
});
}
}
});
In this component's template I pass this action as closure to child component:
{{button-confirmation text="Are you sure?" onConfirm=(action "loadPartners")}}
In my integration test, I render the component as usual
this.render(hbs`{{invoice-form}}`);
Action loadPartners is not passed as argument to component helper. Its just static component's action.
So the question is how to stub action loadPartners from integration test?
In an integration test, you shouldn't change the inner part of components. Instead of it, you should change implementations of your component's dependencies.
So in this case, you should stub
store
. See how to stubstore
.Ref from Guide