UNPKG

@platformbuilders/react-native-ui

Version:
32 lines 1.65 kB
import 'jest'; import React, { useState } from 'react'; import renderer from 'react-test-renderer'; import { render, fireEvent } from 'react-native-testing-library'; import { ThemeProvider } from 'styled-components/native'; import PasswordInput from '../PasswordInput'; import { theme } from '../../../test/helpers'; describe('<PasswordInput />', () => { it('should render PasswordInput', () => { const wrapper = renderer.create(React.createElement(ThemeProvider, { theme: theme }, React.createElement(PasswordInput, { id: "test", accessibility: "test" }))); expect(wrapper.toJSON()).toMatchSnapshot(); }); it('should render input and trigger state change, blur, focus and onPressIcon', () => { const onBlurFN = jest.fn(); const onFocusFN = jest.fn(); const Component = () => { const [value, setValue] = useState(''); return (React.createElement(ThemeProvider, { theme: theme }, React.createElement(PasswordInput, { id: "testing_passwordInput", accessibility: "", value: value, onChangeText: setValue, onBlur: onBlurFN, onFocus: onFocusFN }))); }; const { getByTestId } = render(React.createElement(Component, null)); const component = getByTestId('testing_passwordInput'); fireEvent.changeText(component, 'Value changed'); fireEvent(component, 'blur'); fireEvent(component, 'focus'); expect(onBlurFN).toHaveBeenCalled(); expect(onFocusFN).toHaveBeenCalled(); expect(component.props.value).toBe('Value changed'); }); }); //# sourceMappingURL=PasswordInput.spec.js.map