import { fireEvent, render } from '@testing-library/react-native' import React from 'react' import { Provider } from 'react-redux' import { DappFeaturedActions } from 'src/dappsExplorer/DappFeaturedActions' import { navigate } from 'src/navigator/NavigationService' import { Screens } from 'src/navigator/Screens' import { createMockStore } from 'test/utils' import { mockDappList, mockPositions, mockShortcuts } from 'test/values' jest.mock('src/analytics/AppAnalytics') jest.mock('src/statsig', () => ({ getFeatureGate: jest.fn(() => true), })) describe('DappFeaturedActions', () => { beforeEach(() => { jest.clearAllMocks() }) it('should render all featured actions correctly', () => { const { getByText, getAllByTestId } = render( ) expect(getByText('dappShortcuts.rewards.title')).toBeTruthy() expect(getByText('dappShortcuts.rewards.description')).toBeTruthy() expect(getAllByTestId('DappFeaturedAction')).toHaveLength(1) fireEvent.press(getAllByTestId('DappFeaturedAction')[0]) expect(navigate).toHaveBeenCalledWith(Screens.DappShortcutsRewards) }) // TODO add test for impression analytics on scroll it('should not render dapp rewards shortcut if there are no claimable rewards', () => { const { toJSON } = render( ({ ...position, availableShortcutIds: [], })), shortcuts: mockShortcuts, }, })} > ) expect(toJSON()).toBeNull() }) })