@brightlayer-ui/react-native-auth-workflow
Version:
Re-usable workflow components for Authentication and Registration within Eaton applications.
49 lines (48 loc) • 2.66 kB
JavaScript
import React from 'react';
import { render, cleanup, screen, fireEvent } from '@testing-library/react-native';
import { ContactSupportScreenBase } from '../../screens/ContactScreen/ContactSupportScreenBase';
import { Icon, Text, Provider as PaperProvider } from 'react-native-paper';
afterEach(cleanup);
describe('ContactSupportScreenBase tests', () => {
let mockOnNext;
afterEach(() => {
jest.clearAllMocks();
});
beforeEach(() => {
mockOnNext = jest.fn();
});
it('renders without crashing', () => {
render(React.createElement(PaperProvider, null,
React.createElement(ContactSupportScreenBase, { WorkflowCardHeaderProps: { title: 'Test Contact Us' }, icon: React.createElement(Icon, { size: 24, source: "contacts" }), emailSupportTitle: "General Questions", phoneSupportTitle: "Emergency Support", contactEmail: "something@email.com", contactPhone: "1-800-123-4567", dismissButtonLabel: "Okay", emailSupportContent: (contactEmail) => (React.createElement(Text, null,
'For questions, feedback, or support please email us at ',
React.createElement(Text, null, contactEmail),
`.`)), phoneSupportContent: (phone) => (React.createElement(Text, null,
'For technical support, please call ',
React.createElement(Text, null, phone),
`.`)), WorkflowCardActionsProps: {
nextLabel: 'Okay',
showNext: true,
canGoNext: true,
onNext: () => { },
fullWidthButton: true,
} })));
expect(screen.getByText('Test Contact Us')).toBeOnTheScreen();
expect(screen.getByText('General Questions')).toBeOnTheScreen();
expect(screen.getByText('something@email.com')).toBeOnTheScreen();
expect(screen.getByText('Emergency Support')).toBeOnTheScreen();
expect(screen.getByText('1-800-123-4567')).toBeOnTheScreen();
expect(screen.getByText('Okay')).toBeOnTheScreen();
expect(screen.getByText(/Okay/i)).toBeEnabled();
});
it('calls onNext when the Okay button is clicked', () => {
const { getByText } = render(React.createElement(PaperProvider, null,
React.createElement(ContactSupportScreenBase, { WorkflowCardActionsProps: {
onNext: mockOnNext(),
showNext: true,
nextLabel: 'Okay',
} })));
const nextButton = getByText('Okay');
fireEvent.press(nextButton);
expect(mockOnNext).toHaveBeenCalled();
});
});