Я использую react
с styled-components
и jest
enzyme
для моих тестов. У меня возникают проблемы с тестированием тематического компонента, который вызывает ошибки из-за theme
от styled-components
.Ферментный стальной компонент с темой
Мой компонент:
const Wrapper = styled.header`
position: fixed;
top: 0;
left: 0;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: space-between;
width: 100%;
height: 64px;
background-color: ${({ theme }) => theme.colors.main.default};
color: ${({ theme }) => theme.colors.main.text};
`
Мой тест:
it('should render a <header> tag',() => {
const renderedComponent = shallow(<Wrapper />)
expect(renderedComponent.type()).toEqual('header')
})
Jest дает мне эту ошибку:
<Wrapper /> › should render a <header> tag
TypeError: Cannot read property 'main' of undefined
at Object.<anonymous>._styledComponents2.default.header.theme (app/containers/AppBar/Wrapper.js:13:182)
В основном, это выдает сообщение об ошибке, потому что theme
не определен так он не может прочитать свойство colors
. Как передать тему моему компоненту?
ли вы найти решение вашей проблемы? – rels
Вы когда-нибудь решали эту проблему? – DavidWorldpeace
Привет и извините за долгую задержку! Тем временем шумовые компоненты вышли с некоторыми утилитами. То, что они рекомендуют для темы, просто передает ее в качестве опоры. Вы также можете создать обертку вокруг метода «мелкий» из шутки, чтобы сделать это автоматически. ([Источник] (https://github.com/styled-components/jest-styled-components#theming)) – Dispix