Я создал компонент, действие которого использует службу магазина. Как я могу заглушить это действие из теста интеграции?Как заглушить компонент в ember?
// 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);
});
}
}
});
В шаблоне этого компонента я прохожу эту акцию как закрытие детского компонента:
{{button-confirmation text="Are you sure?" onConfirm=(action "loadPartners")}}
В моем интеграционном тесте, я вынести компонент как обычные
this.render(hbs`{{invoice-form}}`);
действий loadPartners не передан как аргумент вспомогательному компоненту. Его действие только статического компонента.
Итак, вопрос в том, как заглушить действие loadPartners из теста интеграции?
Как вы вводите «магазин»? Вы можете посмотреть определение компонента в [twiddle] (https://ember-twiddle.com/7b868c31e43064c20f6e95991a53f353?openFiles=components.my-component.js%2Ctemplates.components.my-component.hbs)? – ykaragol
На самом деле вам не следует вводить/хранить доступ в компоненте. Вы должны получить к нему доступ только на маршрутах. – ykaragol
IMO, это нормально для доступа к хранилищу в компоненте, но у вас есть все основания для этого. – AlexMA