import { fireEvent, render } from '@testing-library/react-native'
import * as React from 'react'
import 'react-native'
import { Provider } from 'react-redux'
import { navigate } from 'src/navigator/NavigationService'
import { Screens } from 'src/navigator/Screens'
import { RegulatoryTerms as RegulatoryTermsClass } from 'src/onboarding/registration/RegulatoryTerms'
import { firstOnboardingScreen } from 'src/onboarding/steps'
import { getDynamicConfigParams } from 'src/statsig'
import { createMockStore, getMockI18nProps } from 'test/utils'
jest.mock('src/onboarding/steps')
jest.mock('src/statsig')
describe('RegulatoryTermsScreen', () => {
const acceptTerms = jest.fn()
beforeEach(() => {
jest.clearAllMocks()
jest.mocked(getDynamicConfigParams).mockReturnValue({
links: {
privacy: 'https://www.example.com/privacy',
tos: 'https://www.example.com/tos',
},
})
})
it('renders correct components', () => {
const store = createMockStore({})
const { getByTestId, queryByTestId } = render(
)
expect(getByTestId('scrollView')).toBeTruthy()
expect(queryByTestId('colloquialTermsSectionList')).toBeFalsy()
})
describe('when accept button is pressed', () => {
it('stores that info', async () => {
const store = createMockStore({})
const wrapper = render(
)
fireEvent.press(wrapper.getByTestId('AcceptTermsButton'))
expect(acceptTerms).toHaveBeenCalled()
})
it('navigates to PincodeSet', () => {
const store = createMockStore({})
jest.mocked(firstOnboardingScreen).mockReturnValue(Screens.PincodeSet)
const wrapper = render(
)
fireEvent.press(wrapper.getByTestId('AcceptTermsButton'))
expect(firstOnboardingScreen).toHaveBeenCalled()
expect(navigate).toHaveBeenCalledWith(Screens.PincodeSet)
})
})
})