Как макетировать stati c компоненты или подкомпоненты - PullRequest
0 голосов
/ 19 февраля 2020

Я использую пакет пользовательского интерфейса, который предоставляет мне такие компоненты, как заголовки, кнопки, раскрывающиеся списки и т. Д. c. Когда я запускаю тесты, эти компоненты отображают не <Button>, а, например, <t>, потому что код пакета пользовательского интерфейса увеличен.

Так что теперь я хочу иметь макет этого пакета, который возвращает фактический <Button>.

Это работает, когда я так издеваюсь:

jest.mock('ui-package', () => {
  return {
       Button: 'Button',
  }
});

Теперь У меня есть проблема: Есть также компоненты, которые описаны как <Layout.Header>, например этот фрагмент:

<ApplicationLayout>
   <ApplicationLayout.Header>
      <ApplicationHeader/>
   </ApplicationLayout.Header>
   <ApplicationLayout.Sidebar>
     {some code}
   </ApplicationLayout.Sidebar>
   <ApplicationLayout.Body>
     {some more code}
   </ApplicationLayout.Body> 
</ApplicationLayout>

Здесь я хочу смоделировать ApplicationLayout, ApplicationLayout.Header и так далее. Я пытаюсь это сделать, но каким-то образом я только высмеиваю родительский компонент, а не «подкомпоненты».

jest.mock('ui-package', () => {
  return {
    ApplicationLayout: () => ({
      Header: 'ApplicationLayoutHeader',
      Body: 'ApplicationLayoutBody',
      Sidebar: 'ApplicationLayoutSidebar',
    }),
})

Можете ли вы помочь мне правильно смоделировать эти компоненты?

...