import { fireEvent, render } from '@testing-library/react-native'
import React from 'react'
import { Provider } from 'react-redux'
import JumpstartIntro from 'src/jumpstart/JumpstartIntro'
import { navigate } from 'src/navigator/NavigationService'
import { getDynamicConfigParams } from 'src/statsig'
import { createMockStore } from 'test/utils'
jest.mock('src/statsig')
jest.mocked(getDynamicConfigParams).mockReturnValue({
wallet_network_timeout_seconds: 10,
jumpstartContracts: [],
})
describe('JumpstartIntro', () => {
it('should render the correct actions and components', () => {
const { getByText, queryByText, getByTestId } = render(
)
expect(getByText('jumpstartIntro.title')).toBeTruthy()
expect(getByText('jumpstartIntro.description')).toBeTruthy()
expect(getByText('jumpstartIntro.noFundsHint')).toBeTruthy()
expect(getByText('jumpstartIntro.addFundsCelo.cta')).toBeTruthy()
expect(getByTestId('JumpstartIntro/noFundsButton')).toBeTruthy()
expect(getByText('addFundsActions.transfer')).toBeTruthy()
expect(queryByText('addFundsActions.swap')).toBeFalsy()
expect(getByText('addFundsActions.add')).toBeTruthy()
})
it('should trigger the expected callbacks on press actions', async () => {
const { getByText } = render(
)
fireEvent.press(getByText('addFundsActions.add'))
expect(navigate).toHaveBeenLastCalledWith('FiatExchangeCurrencyBottomSheet', {
flow: 'CashIn',
networkId: 'celo-alfajores',
})
fireEvent.press(getByText('addFundsActions.transfer'))
expect(navigate).toHaveBeenLastCalledWith('ExchangeQR', {
flow: 'CashIn',
})
fireEvent.press(getByText('addFundsActions.swap'))
expect(navigate).toHaveBeenLastCalledWith('SwapScreenWithBack', {
toTokenNetworkId: 'celo-alfajores',
})
})
})