1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-23 09:52:26 +01:00
metamask-extension/ui/pages/desktop-error/desktop-error.test.js
João Tavares bde74756d3
Add extension desktop UI (#17748)
* feat: add desktop enable button component

This component will be added
to the experimental page. Users
will then be able to initialize
a desktop connection

* feat: add desktop pairing page

* feat: add desktop deep-linking shared lib

* test: add initial entries to render helper

Allow specifying initialEntries for
MemoryRouter. This change will allow
testing pages that use the useParam
hook.

* feat: add desktop error page

Error page for any desktop pairing
related issue

* feat: add desktop routes to route component

* feat: add enable desktop button to experimental tab

* feat: add desktop icon when paired in dev mode

* feat: disable ledger live control when desktop enabled

* feat: register desktop error actions on ui init

* fix: add missing code fencing

* chore: remove enable desktop rpc middleware

Now that we are adding the UI
there's no need for this rpc middleware
(as it was used to test desktop background
code)

* fix: display experimental tab for desktop
2023-02-23 16:39:48 +00:00

128 lines
3.4 KiB
JavaScript

import React from 'react';
import reactRouterDom, { Route } from 'react-router-dom';
import configureStore from '../../store/store';
import { renderWithProvider } from '../../../test/jest';
import mockState from '../../../test/data/mock-state.json';
import { EXTENSION_ERROR_PAGE_TYPES } from '../../../shared/constants/desktop';
import DesktopErrorPage from '.';
describe('Desktop Error page', () => {
const mockHistoryPush = jest.fn();
beforeEach(() => {
jest
.spyOn(reactRouterDom, 'useHistory')
.mockImplementation()
.mockReturnValue({ push: mockHistoryPush });
});
afterEach(() => {
jest.resetAllMocks();
jest.clearAllMocks();
});
it('should render not found page', async () => {
const store = configureStore(mockState);
const { container } = renderWithProvider(
<Route path="/:errorType">
<DesktopErrorPage />
</Route>,
store,
[`/${EXTENSION_ERROR_PAGE_TYPES.NOT_FOUND}`],
);
expect(container).toMatchSnapshot();
});
it('should render connection lost page', async () => {
const store = configureStore(mockState);
const { container } = renderWithProvider(
<Route path="/:errorType">
<DesktopErrorPage />
</Route>,
store,
[`/${EXTENSION_ERROR_PAGE_TYPES.CONNECTION_LOST}`],
);
expect(container).toMatchSnapshot();
});
it('should render desktop app outdated page', async () => {
const store = configureStore(mockState);
const { container } = renderWithProvider(
<Route path="/:errorType">
<DesktopErrorPage />
</Route>,
store,
[`/${EXTENSION_ERROR_PAGE_TYPES.DESKTOP_OUTDATED}`],
);
expect(container).toMatchSnapshot();
});
it('should render extension outdated page', async () => {
const store = configureStore(mockState);
const { container } = renderWithProvider(
<Route path="/:errorType">
<DesktopErrorPage />
</Route>,
store,
[`/${EXTENSION_ERROR_PAGE_TYPES.EXTENSION_OUTDATED}`],
);
expect(container).toMatchSnapshot();
});
it('should render critical error page', async () => {
const store = configureStore(mockState);
const { container } = renderWithProvider(
<Route path="/:errorType">
<DesktopErrorPage />
</Route>,
store,
[`/${EXTENSION_ERROR_PAGE_TYPES.CRITICAL_ERROR}`],
);
expect(container).toMatchSnapshot();
});
it('should render route not found page', async () => {
const store = configureStore(mockState);
const { container } = renderWithProvider(
<Route path="/:errorType">
<DesktopErrorPage />
</Route>,
store,
[`/${EXTENSION_ERROR_PAGE_TYPES.ROUTE_NOT_FOUND}`],
);
expect(container).toMatchSnapshot();
});
it('should render pairing key not match page', async () => {
const store = configureStore(mockState);
const { container } = renderWithProvider(
<Route path="/:errorType">
<DesktopErrorPage />
</Route>,
store,
[`/${EXTENSION_ERROR_PAGE_TYPES.PAIRING_KEY_NOT_MATCH}`],
);
expect(container).toMatchSnapshot();
});
it('should render default error page', async () => {
const store = configureStore(mockState);
const { container } = renderWithProvider(
<Route path="/:errorType">
<DesktopErrorPage />
</Route>,
store,
[`/unknown-error-type`],
);
expect(container).toMatchSnapshot();
});
});