import React from 'react'; import { fireEvent } from '@testing-library/react'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import reactRouterDom from 'react-router-dom'; import { renderWithProvider } from '../../../../test/lib/render-helpers'; import { ONBOARDING_COMPLETION_ROUTE } from '../../../helpers/constants/routes'; import * as Actions from '../../../store/actions'; import SecureYourWallet from './secure-your-wallet'; describe('Secure Your Wallet Onboarding View', () => { const useHistoryOriginal = reactRouterDom.useHistory; const pushMock = jest.fn(); beforeAll(() => { jest .spyOn(reactRouterDom, 'useHistory') .mockImplementation() .mockReturnValue({ push: pushMock }); }); afterAll(() => { reactRouterDom.useHistory = useHistoryOriginal; }); const mockStore = { metamask: { providerConfig: { type: 'test', }, }, localeMessages: { currentLocale: 'en', }, }; const store = configureMockStore([thunk])(mockStore); it('should show a popover asking the user if they want to skip account security if they click "Remind me later"', () => { const { queryAllByText, getByText } = renderWithProvider( , store, ); const remindMeLaterButton = getByText('Remind me later (not recommended)'); expect(queryAllByText('Skip account security?')).toHaveLength(0); fireEvent.click(remindMeLaterButton); expect(queryAllByText('Skip account security?')).toHaveLength(1); }); it('should not be able to click "skip" until "Skip Account Security" terms are agreed to', async () => { const setSeedPhraseBackedUpSpy = jest .spyOn(Actions, 'setSeedPhraseBackedUp') .mockReturnValue({ type: 'setSeedPhraseBackedUp' }); const { getByText, getByTestId } = renderWithProvider( , store, ); const remindMeLaterButton = getByText('Remind me later (not recommended)'); fireEvent.click(remindMeLaterButton); const skipButton = getByText('Skip'); fireEvent.click(skipButton); expect(pushMock).toHaveBeenCalledTimes(0); const checkbox = getByTestId('skip-srp-backup-popover-checkbox'); fireEvent.click(checkbox); const confirmSkip = getByTestId('skip-srp-backup'); await fireEvent.click(confirmSkip); expect(setSeedPhraseBackedUpSpy).toHaveBeenCalledTimes(1); expect(pushMock).toHaveBeenCalledTimes(1); expect(pushMock).toHaveBeenCalledWith(ONBOARDING_COMPLETION_ROUTE); }); });