@platformbuilders/react-native-ui
Version:
Platform Builders Shared Components Library
32 lines • 1.65 kB
JavaScript
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