UNPKG

@brightlayer-ui/react-native-auth-workflow

Version:

Re-usable workflow components for Authentication and Registration within Eaton applications.

98 lines (97 loc) 6.21 kB
import React from 'react'; import { render, fireEvent } from '@testing-library/react-native'; import { OktaRedirectLoginScreenBase } from 'src/screens'; import { Image, Text } from 'react-native'; describe('OktaRedirectLoginScreenBase', () => { const defaultProps = { loginButtonLabel: 'Sign In with Okta', onLogin: jest.fn(), showForgotPassword: true, forgotPasswordLabel: 'Forgot your password?', onForgotPassword: jest.fn(), errorDisplayConfig: {}, showSelfRegistration: true, selfRegisterButtonLabel: 'Register now!', selfRegisterInstructions: 'Need an account?', onSelfRegister: jest.fn(), showContactSupport: true, contactSupportLabel: 'Contact Support', onContactSupport: jest.fn(), showCyberSecurityBadge: true, cyberSecurityBadgeSize: { width: 50, height: 50 }, projectImage: React.createElement(Image, { source: { uri: require('../assets/images/eaton_stacked_logo.png') } }), header: React.createElement(Text, null, "Header"), footer: React.createElement(Text, null, "Footer"), }; it('renders the WorkflowCard', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-workflow-card')).toBeTruthy(); }); it('renders the project image wrapper', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-project-image-wrapper')).toBeTruthy(); }); it('renders the login button wrapper and button', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-login-button-wrapper')).toBeTruthy(); expect(getByTestId('blui-okta-login-login-button')).toBeTruthy(); }); it('renders the bottom body wrapper', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-bottom-body-wrapper')).toBeTruthy(); }); it('renders the forgot password wrapper and label', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-forgot-password-wrapper')).toBeTruthy(); expect(getByTestId('blui-login-forgot-password-label')).toBeTruthy(); }); it('renders the self-register wrapper, instruction label, and button label', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-self-register-wrapper')).toBeTruthy(); expect(getByTestId('blui-okta-login-self-register-instruction-label')).toBeTruthy(); expect(getByTestId('blui-okta-login-self-register-label').props.children).toBe('Register now!'); }); it('calls onSelfRegister when self-register label is pressed', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); fireEvent.press(getByTestId('blui-okta-login-self-register-label')); expect(defaultProps.onSelfRegister).toHaveBeenCalled(); }); it('renders the contact support wrapper and label', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-contact-support-wrapper')).toBeTruthy(); expect(getByTestId('blui-okta-login-contact-support-label').props.children).toBe('Contact Support'); }); test('calls handleContactSupport when contact support label is pressed', () => { const handleContactSupport = jest.fn(); const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, { showContactSupport: true, onContactSupport: handleContactSupport })); const contactSupportLabel = getByTestId('blui-okta-login-contact-support-label'); fireEvent.press(contactSupportLabel); expect(handleContactSupport).toHaveBeenCalled(); }); it('renders the footer', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-footer').props.children).toMatchSnapshot('Footer'); }); it('renders the cyber security badge wrapper and image', () => { var _a; const imgSource = require('../../assets/images/cybersecurity_certified.png'); const { getByTestId, queryByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); expect(getByTestId('blui-okta-login-cyber-security-badge-wrapper')).toBeTruthy(); expect((_a = queryByTestId('blui-okta-login-cyber-security-badge-image')) === null || _a === void 0 ? void 0 : _a.props.source).toBe(imgSource); }); it('calls onLogin when login button is pressed', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); fireEvent.press(getByTestId('blui-okta-login-login-button')); expect(defaultProps.onLogin).toHaveBeenCalled(); }); it('calls onForgotPassword when forgot password label is pressed', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); fireEvent.press(getByTestId('blui-login-forgot-password-label')); expect(defaultProps.onForgotPassword).toHaveBeenCalled(); }); it('calls onContactSupport when contact support label is pressed', () => { const { getByTestId } = render(React.createElement(OktaRedirectLoginScreenBase, Object.assign({}, defaultProps))); fireEvent.press(getByTestId('blui-okta-login-contact-support-label')); expect(defaultProps.onContactSupport).toHaveBeenCalled(); }); });