import React from 'react'; import { render, renderHook } from '@testing-library/react-native'; import { useTheme } from '../../../theme'; import PhoneNumberField from '../PhoneNumberField'; import { getThemedStyles as getTextFieldStyles } from '../../TextField/styles'; import { getThemedStyles } from '../styles'; const testID = 'phoneNumberInput'; const defaultProps = { testID, }; // TODO: add more tests describe('PhoneNumberField', () => { it('renders as expected', () => { const { toJSON, getByTestId } = render( ); expect(toJSON()).toMatchSnapshot(); const textInput = getByTestId(testID); expect(textInput.props.keyboardType).toBe('phone-pad'); expect(textInput.props.editable).toBe(true); }); it('renders as expected when disabled', () => { const { toJSON, getByTestId } = render( ); expect(toJSON()).toMatchSnapshot(); const textInput = getByTestId(testID); expect(textInput.props.editable).toBe(false); }); it('applies theming', () => { const { toJSON, getByTestId } = render( ); const { result } = renderHook(() => useTheme()); const themedStyle = getThemedStyles(result.current); const textFieldStyles = getTextFieldStyles(result.current); expect(getByTestId(testID).props.style).toStrictEqual([ textFieldStyles.field, [themedStyle.field, undefined], ]); expect(toJSON()).toMatchSnapshot(); }); });