Как передать стилизованный компонент с его потомками в другую функцию, чтобы я мог создать вспомогательную функцию обертки для ферментного монтирования - PullRequest
1 голос
/ 07 мая 2019

Я создал вспомогательную функцию ScMountWithTheme, и я хочу просто передать этой функции два аргумента: 1) компонент (ы), который я пытаюсь отобразить, и 2) дочерние элементы, вложенные в этот компонент. Цель в том, чтобы мне не приходилось переписывать код, который монтирует одну и ту же тему снова и снова.

Я пытался передать его и получить доступ через детей, но это не помогло. Я пытался увидеть, что на самом объекте компонента может помочь, но не был уверен, что это будет полезно.

Ожидаемый результат - пройти тест, но в настоящее время я не получаю правильный объект ответа из оболочки.

import { mount } from "enzyme";
import React from "react";
import { ThemeProvider } from "styled-components";
import { getTheme } from "../../../src/components/framework/StyledComponents/themes";

export const ScMountWithTheme = (Component, mode) => {
  return mount(
    <ThemeProvider theme={getTheme(mode)}>{Component.children}</ThemeProvider>,
  );
};

describe.only("ScH1 Styled Component", () => {
  it("renders H1 with Test in the text", () => {
    const wrapper = ScMountWithTheme(<ScH1>Test</ScH1>, "BUY");
    expect(wrapper.find("h1").text()).toContain("Test");
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...