import React from 'react'; import renderer from 'react-test-renderer'; import { render, fireEvent } from '@testing-library/react'; import { RepostButton, RepostButtonProps } from './RepostButton'; import { FeedProvider } from '../context/Feed'; const testActivity: RepostButtonProps['activity'] = { // @ts-expect-error actor: { data: { name: 'Nora Ferguson', profileImage: 'https://randomuser.me/api/portraits/women/72.jpg', }, }, verb: 'post', object: 'I just missed my train 😤', time: new Date().toJSON(), reaction_counts: { repost: 17, like: 17, comment: 17, }, }; describe('RepostButton', () => { it('renders with default props', () => { const tree = renderer.create().toJSON(); expect(tree).toMatchInlineSnapshot(`

{{ countReposts }} reposts

`); }); it('checks if onPress has been called with right arguments', () => { const handleToggleReaction = jest.fn(); const { getByRole, rerender } = render( , ); fireEvent.click(getByRole('button')); expect(handleToggleReaction).toHaveBeenCalledWith( 'repost', testActivity, {}, { targetFeeds: ['user:batman'], }, ); handleToggleReaction.mockClear(); rerender( , ); fireEvent.click(getByRole('button')); expect(handleToggleReaction).toHaveBeenCalledWith( 'repost', {}, // activity.object {}, { targetFeeds: ['user:batman'], }, ); }); });