Я работаю над компонентом Ember с функцией инициализации, для которой я хотел бы добавить модульный тест. Компонент имеет следующие свойства:
1) Функция инициализации не должна запускаться более одного раза, и
2) Компонент зависит от того, передана ли ему модель (currentUser).
До сих пор я пытался написать такой тест:
test('#init', function(assert) {
const component = this.owner.lookup('component:component-that-depends-on-property');
const currentUser = make('user');
component.set('currentUser', user);
component.init();
assert.ok(component.somethingHasHappened);
});
Моя проблема в том, что метод init запускается в строке owner.lookup, а это означает, что у меня нет возможности получить currentUser в компоненте до его запуска. Опять же, я не могу запустить метод init более одного раза, не взорвав состояние компонента.
Я заметил, что метод поиска принимает аргумент options
, и подумал, что смогу использовать его для передачи currentUser, но, похоже, это не работает, и я не смог найти много документации по методу поиска.
Я бы хотел избежать написания интеграционного теста для этого, если это возможно. Есть ли хороший способ сделать это/обходной путь, которого я не вижу?
The init function must not be run more than once
? - person bartocc   schedule 03.10.2019