import { fireEvent, render } from '@testing-library/react-native' import * as React from 'react' import 'react-native' import * as Keychain from 'react-native-keychain' import { Provider } from 'react-redux' import BackupPhrase from 'src/backup/BackupPhrase' import { navigate } from 'src/navigator/NavigationService' import { Screens } from 'src/navigator/Screens' import { createMockStore, getMockStackScreenProps } from 'test/utils' describe('BackupPhrase', () => { it('renders correctly with backup not completed', () => { const tree = render( ) expect(tree).toMatchSnapshot() }) it('renders correctly with backup completed', () => { const tree = render( ) expect(tree).toMatchSnapshot() }) it('still renders when mnemonic doesnt show up', () => { const mockGetGenericPassword = Keychain.getGenericPassword as jest.Mock mockGetGenericPassword.mockResolvedValue(null) const tree = render( ) expect(tree).toMatchSnapshot() }) it('pressing continue navigates to backup quiz when backup not completed', () => { const { getByTestId } = render( ) expect(getByTestId('backupKeyContinue')).toBeDisabled() fireEvent(getByTestId('backupKeySavedSwitch'), 'onValueChange', true) expect(getByTestId('backupKeyContinue')).toBeEnabled() fireEvent.press(getByTestId('backupKeyContinue')) expect(navigate).toHaveBeenCalledWith(Screens.BackupQuiz, { isAccountRemoval: false }) }) it('pressing continue navigates to backup quiz when account removal', () => { const { getByTestId } = render( ) expect(getByTestId('backupKeyContinue')).toBeDisabled() fireEvent(getByTestId('backupKeySavedSwitch'), 'onValueChange', true) expect(getByTestId('backupKeyContinue')).toBeEnabled() fireEvent.press(getByTestId('backupKeyContinue')) expect(navigate).toHaveBeenCalledWith(Screens.BackupQuiz, { isAccountRemoval: true }) }) })