что я пишу на jsx и childComponent.vm.$emit('whenChange', 'Name') не работает.
jsx никак не связан с тестированием или порождением событий. childComponent.vm.$emit должен работать
Понял. Но дело еще в том, что я не использую эмиты в childComponent, а лишь пробрасываю в него функцию whenChange, которую как раз хочу и вызвать.
А вот это уже большое отличие. Тут, конечно $emit не поможет, потому что собственно событий нет. Нужно мокать, либо вызывать её косвенно. Либо подумать ещё раз, а точно ли тут надо передавать функцию, или лучше использовать события для взаимодействия ребёнка с родителем)
Спасибо, я до последнего противился emit'ам. Потому что абсолютно все компоненты и тд на работе написаны без их использования. Хотелось поддерживать стайл гайд, но видимо да. Они слишком перегнули))
Это очень странный style guide, использовать не стандартный для Vue интерфейс компонента)
Полностью с тобой согласен, это ужасно))))
Юнит тест? Дочерний компонент - стаб?
Так и вызывый. child.whenChange()
Да, только надо добавить child.vm.whenChange() и слава богу работает)
Обсуждают сегодня