import React from 'react';
import renderer from 'react-test-renderer';
import { render, fireEvent, screen } from '@testing-library/react';
import { Button } from './Button';
describe('Button', () => {
it('renders with default props', () => {
const tree = renderer.create();
expect(tree).toMatchInlineSnapshot(`
`);
});
it('renders with custom props', () => {
const tree = renderer.create(
,
);
expect(tree).toMatchInlineSnapshot(`
`);
});
it('checks if onClick has been called', () => {
const handleClick = jest.fn();
render();
fireEvent.click(screen.getByText('Click'));
expect(handleClick).toHaveBeenCalledTimes(1);
});
it('checks if onKeyPress has been called', () => {
const onKeyPress = jest.fn();
render();
fireEvent.keyPress(screen.getByText('Click'), {
key: 'Enter',
charCode: 13,
code: 13,
});
expect(onKeyPress).toHaveBeenCalledTimes(1);
});
it('checks if disabled attribute works for click event', () => {
const handleClick = jest.fn();
render(
,
);
fireEvent.click(screen.getByText('Click'));
expect(handleClick).toHaveBeenCalledTimes(0);
});
});