import { render } from '@testing-library/react-native' import React from 'react' import { Provider } from 'react-redux' import TokenIcon from 'src/components/TokenIcon' import { createMockStore } from 'test/utils' import { mockCeloTokenId, mockCusdTokenId, mockPoofTokenId, mockTokenBalances } from 'test/values' // Setting up the mock token balances with expected additional values const CELO_TOKEN = { ...mockTokenBalances[mockCeloTokenId], imageUrl: 'https://example.com/address-metadata/main/assets/tokens/CELO.png', } const CUSD_TOKEN = { ...mockTokenBalances[mockCusdTokenId], imageUrl: 'https://example.com/address-metadata/main/assets/tokens/CELO.png', networkIconUrl: 'https://example.com/address-metadata/main/assets/tokens/CELO.png', } const NO_IMAGE_TOKEN = { ...mockTokenBalances[mockPoofTokenId], imageUrl: undefined, networkIconUrl: 'https://example.com/address-metadata/main/assets/tokens/CELO.png', } const store = createMockStore({ tokens: { error: false, tokenBalances: mockTokenBalances, }, }) describe('TokenIcon', () => { it('renders correctly with a native token', () => { const { queryByTestId, getByTestId } = render( ) expect(getByTestId('Assets/TokenIcon')).toHaveProp('source', { uri: CELO_TOKEN.imageUrl, }) expect(queryByTestId('Assets/NetworkIcon')).toBeFalsy() }) it('renders correctly with a non-native token', () => { const { getByTestId } = render( ) expect(getByTestId('TokenIcon')).toHaveProp('source', { uri: CUSD_TOKEN.imageUrl, }) expect(getByTestId('NetworkIcon')).toHaveProp('source', { uri: CELO_TOKEN.imageUrl, }) }) it('renders correctly with default icon if no token icon is present', () => { const { getByTestId } = render( ) expect(getByTestId('DefaultTokenIcon')).toBeTruthy() expect(getByTestId('NetworkIcon')).toHaveProp('source', { uri: CELO_TOKEN.imageUrl, }) }) })