import { fireEvent, render } from '@testing-library/react-native' import * as React from 'react' import 'react-native' import { View } from 'react-native' import { SettingsItemCta, SettingsItemSwitch, SettingsItemTextValue, } from 'src/components/SettingsItem' const title = 'title' const testID = 'testID' describe('SettingsItemTextValue', () => { const value = 'value' it('renders correctly without value', () => { const wrapper = render() expect(wrapper.toJSON()).toMatchSnapshot() }) it('renders correctly', () => { const wrapper = render() expect(wrapper.toJSON()).toMatchSnapshot() }) it('reacts on press', () => { const onPress = jest.fn() const { getByTestId } = render( ) fireEvent.press(getByTestId(testID)) expect(onPress).toHaveBeenCalled() }) }) describe('SettingsItemSwitch', () => { const value = true const onValueChange = jest.fn() it('renders correctly', () => { const wrapper = render( ) expect(wrapper.toJSON()).toMatchSnapshot() }) it('reacts on press', () => { const { getByTestId } = render( ) fireEvent(getByTestId(testID), 'valueChange', !value) expect(onValueChange).toHaveBeenCalledWith(!value) }) }) describe('SettingsItemCta', () => { const mockComponent = it('renders correctly', () => { const { getByTestId, getByText } = render( ) expect(getByText(title)).toBeTruthy() expect(getByTestId(`cta-test`)).toBeTruthy() }) it('reacts on press', () => { const onPress = jest.fn() const { getByTestId } = render( ) fireEvent.press(getByTestId(testID)) expect(onPress).toHaveBeenCalled() }) })