1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-26 20:39:08 +01:00
metamask-extension/ui/pages/settings/advanced-tab/advanced-tab.component.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

75 lines
2.4 KiB
JavaScript

import React from 'react';
import { fireEvent } from '@testing-library/react';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import mockState from '../../../../test/data/mock-state.json';
import { renderWithProvider } from '../../../../test/lib/render-helpers';
import AdvancedTab from '.';
const mockSetAutoLockTimeLimit = jest.fn();
const mockSetShowTestNetworks = jest.fn();
jest.mock('../../../store/actions.ts', () => {
return {
setAutoLockTimeLimit: () => mockSetAutoLockTimeLimit,
setShowTestNetworks: () => mockSetShowTestNetworks,
};
});
describe('AdvancedTab Component', () => {
const mockStore = configureMockStore([thunk])(mockState);
it('should render backup button', () => {
const { queryByTestId } = renderWithProvider(<AdvancedTab />, mockStore);
const backupButton = queryByTestId('backup-button');
expect(backupButton).toBeInTheDocument();
});
it('should render restore button', () => {
const { queryByTestId } = renderWithProvider(<AdvancedTab />, mockStore);
const restoreFile = queryByTestId('restore-file');
expect(restoreFile).toBeInTheDocument();
});
it('should update autoLockTimeLimit', () => {
const { queryByTestId } = renderWithProvider(<AdvancedTab />, mockStore);
const autoLockoutTime = queryByTestId('auto-lockout-time');
const autoLockoutButton = queryByTestId('auto-lockout-button');
fireEvent.change(autoLockoutTime, { target: { value: 1440 } });
expect(autoLockoutTime).toHaveValue(1440);
fireEvent.click(autoLockoutButton);
expect(mockSetAutoLockTimeLimit).toHaveBeenCalled();
});
it('should toggle show test networks', () => {
const { queryAllByRole } = renderWithProvider(<AdvancedTab />, mockStore);
const testNetworkToggle = queryAllByRole('checkbox')[3];
fireEvent.click(testNetworkToggle);
expect(mockSetShowTestNetworks).toHaveBeenCalled();
});
it('should not render ledger live control with desktop pairing enabled', () => {
const mockStoreWithDesktopEnabled = configureMockStore([thunk])({
...mockState,
metamask: {
...mockState.metamask,
desktopEnabled: true,
},
});
const { queryByTestId } = renderWithProvider(
<AdvancedTab />,
mockStoreWithDesktopEnabled,
);
expect(queryByTestId('ledger-live-control')).not.toBeInTheDocument();
});
});