import { render } from '@testing-library/react-native'
import * as React from 'react'
import { Provider } from 'react-redux'
import { ReactTestInstance } from 'react-test-renderer'
import RecipientPicker from 'src/recipients/RecipientPickerV2'
import { createMockStore } from 'test/utils'
import { mockRecipient, mockRecipient2, mockRecipient3 } from 'test/values'
const mockRecipients = [
{
...mockRecipient,
contactId: 'contactId1',
},
{
...mockRecipient2,
contactId: 'contactId2',
},
{
...mockRecipient3,
contactId: 'contactId3',
},
]
const store = createMockStore()
describe('RecipientPickerV2', () => {
it('renders all recipients', () => {
const { getAllByTestId } = render(
)
expect(getAllByTestId('RecipientItem')).toHaveLength(3)
})
it('renders all recipients with title', () => {
const { getAllByTestId, getByText } = render(
)
expect(getByText('mockRecipientTitle')).toBeTruthy()
expect(getAllByTestId('RecipientItem')).toHaveLength(3)
})
it('renders all recipients with one recipient selected', () => {
const { getAllByTestId, queryByTestId } = render(
)
expect(getAllByTestId('RecipientItem')).toHaveLength(3)
expect(queryByTestId('RecipientItem/ActivityIndicator')).toBeFalsy()
expect(
(getAllByTestId('RecipientItem')[0].children[0] as ReactTestInstance).props.style[1]
).toBeFalsy()
expect(
(getAllByTestId('RecipientItem')[1].children[0] as ReactTestInstance).props.style[1]
).toHaveProperty('backgroundColor')
expect(
(getAllByTestId('RecipientItem')[2].children[0] as ReactTestInstance).props.style[1]
).toBeFalsy()
})
it('renders all recipients with one recipient selected and loading', () => {
const { getAllByTestId, getByTestId } = render(
)
expect(getAllByTestId('RecipientItem')).toHaveLength(3)
expect(getAllByTestId('RecipientItem/ActivityIndicator')).toHaveLength(1)
expect(
(getAllByTestId('RecipientItem')[0].children[0] as ReactTestInstance).props.style[1]
).toHaveProperty('backgroundColor')
expect(getAllByTestId('RecipientItem')[0]).toContainElement(
getByTestId('RecipientItem/ActivityIndicator')
)
expect(
(getAllByTestId('RecipientItem')[1].children[0] as ReactTestInstance).props.style[1]
).toBeFalsy()
expect(
(getAllByTestId('RecipientItem')[2].children[0] as ReactTestInstance).props.style[1]
).toBeFalsy()
})
})