Поскольку вы используете метод shallow
, он будет отображать только тот компонент, который мы тестируем. Он не отображает дочерние компоненты. Поэтому вы должны попытаться найти компонент Button
.
const button = wrapper.find('Button');
После этого вы должны смоделировать обработчик события props.onClick
, переданный как реквизит компоненту NewButton
.
const props = {
className: "buttonSubmit",
label: "submit",
onClick: jest.fn(),
}
Так что вы можете использовать
describe('<NewButton />', () => {
describe('onClick()', () => {
const props = {
className: "buttonSubmit",
label: "submit",
onClick: jest.fn(),
}
test('successfully calls the onClick handler', () => {
const wrapper = shallow(
<NewButton {...props} />
);
const button = wrapper.find('Button');
expect(button.exists()).toEqual(true)
button.simulate('click');
// Since we passed "onClick" as props
// we expect it to be called when
// button is clicked
// expect(props.onClick).toBeCalled();
expect(props.onClick.mock.calls.length).toBe(1);
});
});
});