UNPKG

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

Version:

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

54 lines (53 loc) 2.25 kB
import React from 'react'; import { cleanup, fireEvent, render, screen } from '@testing-library/react-native'; import { ExistingAccountSuccessScreen } from '../../screens'; import { registrationContextProviderProps } from '../../testUtils'; import { RegistrationContextProvider, RegistrationWorkflowContextProvider } from '../../contexts'; import { SafeAreaProvider } from 'react-native-safe-area-context'; afterEach(cleanup); const registrationWorkflowContextProps = { currentScreen: 0, totalScreens: 2, nextScreen: jest.fn(), previousScreen: jest.fn(), screenData: { Eula: { accepted: true }, CreateAccount: { emailAddress: 'emailAddress@emailAddress.emailAddress' }, VerifyCode: { code: '12345' }, CreatePassword: { password: 'password', confirmPassword: 'confirmPassword' }, AccountDetails: { firstName: 'firstName', lastName: 'lastName' }, }, updateScreenData: jest.fn(), resetScreenData: jest.fn(), }; describe('ExistingAccountSuccessScreen', () => { let mockOnDismiss; afterEach(() => { jest.clearAllMocks(); }); beforeEach(() => { mockOnDismiss = jest.fn(); }); const renderer = (props) => render(React.createElement(SafeAreaProvider, null, React.createElement(RegistrationContextProvider, Object.assign({}, registrationContextProviderProps), React.createElement(RegistrationWorkflowContextProvider, Object.assign({}, registrationWorkflowContextProps), React.createElement(ExistingAccountSuccessScreen, Object.assign({}, props)))))); it('renders without crashing', () => { renderer(); expect(screen.getByText('Account Created!')).toBeOnTheScreen(); }); it('should call onDismiss, when Dismiss button is pressed', () => { renderer({ WorkflowCardActionsProps: { nextLabel: 'Dismiss', canGoNext: true, showNext: true, onNext: () => mockOnDismiss(), }, }); const dismissButton = screen.getByText('Dismiss'); expect(dismissButton).toBeOnTheScreen(); fireEvent.press(dismissButton); expect(mockOnDismiss).toHaveBeenCalled(); }); });