@s24344

Как правильно написать test (jest)?

Всем привет, подскажите, пожалуйста, где может быть ошибка:
Есть теcтестируемый компонент:
const ContractCreate = ({ isFinished, statusLevel, isError }) => {
    return (
        <section data-test="component-contract-create">

И тест на этот компонент:
import React from 'react'
import { Provider } from 'react-redux'
import Enzyme, { shallow } from 'enzyme'
import EnzymeAdapter from 'enzyme-adapter-react-16'

import store from '../__data__/store'
import ContractCreate from './contract-create'

Enzyme.configure({ adapter: new EnzymeAdapter() })

export const findByTestAttr = (wrapper, val) => {
    return wrapper.find(`[data-test="${val}"]`)
}

test('renders without error', () => {
    const wrapper = shallow(
        <Provider store={store}>
            <ContractCreate />
        </Provider>
    )

    const component = findByTestAttr(wrapper, 'component-contract-create')
    console.log('component', component.length) // 0

    expect(component.length)
        .toBe(1)
})

В component.length у меня ноль, выходит, что wrapper.find() ничего не нашел.
  • Вопрос задан
  • 101 просмотр
Пригласить эксперта
Ответы на вопрос 1
@Dasslier
FrontEnd Developer
Сделайте так после создания константы wrapper
console.log(wrapper.debug())
Вы увидите, что именно отрендерилось в вашей обертке. А когда увидите - проблему будет решить легче. И используйте лучше моковый стор. То есть создаете объект с нужными данными вашего стора и передаете его пропсом store в Provider
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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