import { fireEvent, render } from '@testing-library/react-native'
import * as React from 'react'
import { Provider } from 'react-redux'
import { SendOrigin } from 'src/analytics/types'
import { AddressValidationType } from 'src/identity/reducer'
import { navigate } from 'src/navigator/NavigationService'
import { Screens } from 'src/navigator/Screens'
import ValidateRecipientIntro from 'src/send/ValidateRecipientIntro'
import { createMockStore } from 'test/utils'
import { mockEthTokenId, mockNavigation, mockTransactionData } from 'test/values'
const store = createMockStore()
const mockRoute = {
name: Screens.ValidateRecipientIntro as Screens.ValidateRecipientIntro,
key: '1',
params: {
transactionData: mockTransactionData,
addressValidationType: AddressValidationType.FULL,
origin: SendOrigin.AppSendFlow,
recipient: mockTransactionData.recipient,
defaultTokenIdOverride: mockEthTokenId,
},
}
describe('ValidateRecipientIntro', () => {
beforeEach(() => {
jest.clearAllMocks()
})
it('navigates to account confirmation screen when Confirm Account button clicked', () => {
const tree = render(
)
fireEvent.press(tree.getByTestId('confirmAccountButton'))
expect(navigate).toHaveBeenCalledWith(Screens.ValidateRecipientAccount, {
origin: SendOrigin.AppSendFlow,
defaultTokenIdOverride: mockEthTokenId,
forceTokenId: undefined,
requesterAddress: undefined,
recipient: mockTransactionData.recipient,
})
})
it('navigates to QR Scanner screen when Scan QR Code button clicked', () => {
const tree = render(
)
fireEvent.press(tree.getByTestId('scanQRCode'))
expect(navigate).toHaveBeenCalledWith(Screens.QRNavigator, {
screen: Screens.QRScanner,
params: {
onQRCodeDetected: expect.any(Function),
showSecureSendStyling: true,
},
})
})
})