@uabylbekov

Как протестировать что window.parent.eventBus.publish() работает с Jest and Enzyme?

У нас есть сайт где на одной странице есть несколько react приложений. И они общаются через объект window с помощью pub/sub.

один из компонентов одного из react приложений выглядит след образом:
const someComponent = (props) => {
    const deepLinks = () => {
       var linkLists = [];
       props.links.forEach(link => {
         linkLists.push(
           <div onClick={iFrameRedirect(link.url)}>
             {link.name}
           </div>
         )
       })
       return linkLists;
    }
    const iFrameRedirect = (link) => {
       let params = {
          'linkRoute' = null
          'href' = null
          'linkUrl' = `${window.location.origin} ${link}`
       }
       window.parent.eventBus.publish('nameOfEvent', params)
    }
    
    return (
      <div>
         {deepLinks()}
      </div>
    )
}


как можно протестировать метод iFrameRedirect?
  • Вопрос задан
  • 31 просмотр
Пригласить эксперта
Ответы на вопрос 1
Alexandroppolus
@Alexandroppolus
кодир
Как вариант, можно запихнуть window.parent.eventBus в контекст каждого из приложений. В тестах рендерить с контекстом, в провайдер которого класть заглушку. Ну а компоненты делают const eventBus = useContext(EventBusContext);

Это такой DI для реакта.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы