У меня возникли проблемы с тестом на рендеринг определенного количества компонентов.Вот как выглядит мой мелкий компонент после отладки:
<div className="block">
<ul className="list">
<Element item={{...}} />
</ul>
</div>
и вот как я хочу его протестировать:
expect(wrapper.find(<Element/>)).toHaveLength(1)
Тест не пройден с длиной 0.
// РЕДАКТИРОВАТЬ: - больше кода
Итак, я импортирую мой компонент в верхней части тестового файла, например так:
import List from "../components/list";
import Element from "../components/element";
Затем вверхуфункции описания:
let outer;
beforeEach(() => {
outer = shallow(<List />);
});
Весь тест выглядит так:
it("should render an <Element /> if an array is > than 0", () => {
const Children = outer.props().children({
query: " ",
totalItems: 1,
hasMore: true,
data: [{items}] // it's a shorthand.. for testing purposes theres an array with one object
});
const wrapper = shallow(Children);
console.log(wrapper.debug());
expect(wrapper.find(<Element />)).toHaveLength(1);
});