import React from 'react'; import renderer from 'react-test-renderer'; import { fireEvent, render, screen } from '@testing-library/react'; import '@testing-library/jest-dom'; import { FollowButton } from './FollowButton'; describe('FollowButton', () => { it('renders with default props', () => { const tree = renderer.create().toJSON(); expect(tree).toMatchInlineSnapshot(`
Following
`); }); it('checks if onClick has been called', () => { const onClick = jest.fn(); render(); fireEvent.click(screen.getByRole('button')); expect(onClick).toHaveBeenCalledTimes(1); }); it('renders with different text after "followed" prop change', () => { const { rerender } = render(); // eslint-disable-next-line jest-dom/prefer-to-have-text-content expect(screen.getByRole('button').textContent).toEqual('Follow'); rerender(); expect(screen.getByRole('button')).toHaveTextContent('Following'); }); });