2023-05-19 14:13:34 +02:00
|
|
|
import React from 'react';
|
|
|
|
import configureMockStore from 'redux-mock-store';
|
|
|
|
import thunk from 'redux-thunk';
|
|
|
|
import { waitFor } from '@testing-library/react';
|
|
|
|
|
|
|
|
import { renderWithProvider } from '../../../../test/lib/render-helpers';
|
|
|
|
import { MESSAGE_TYPE } from '../../../../shared/constants/app';
|
|
|
|
|
|
|
|
import Confirmation from '../confirmation';
|
|
|
|
|
|
|
|
jest.mock('../../../../shared/lib/fetch-with-cache');
|
|
|
|
|
|
|
|
const middleware = [thunk];
|
|
|
|
|
|
|
|
const mockApprovalId = 1;
|
|
|
|
const mockApproval = {
|
|
|
|
id: mockApprovalId,
|
|
|
|
origin: 'https://test-dapp.metamask.io',
|
|
|
|
requestData: {
|
|
|
|
rpcUrl: 'https://rpcurl.test.chain',
|
|
|
|
rpcPrefs: {
|
|
|
|
blockExplorerUrl: 'https://blockexplorer.test.chain',
|
|
|
|
},
|
|
|
|
chainName: 'Test chain',
|
|
|
|
ticker: 'TST',
|
|
|
|
chainId: '0x9999',
|
|
|
|
nickname: 'Test chain',
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
const mockBaseStore = {
|
|
|
|
metamask: {
|
|
|
|
pendingApprovals: {
|
|
|
|
[mockApprovalId]: mockApproval,
|
|
|
|
},
|
2023-06-29 17:51:56 +02:00
|
|
|
approvalFlows: [{ id: mockApprovalId, loadingText: null }],
|
2023-05-19 14:13:34 +02:00
|
|
|
subjectMetadata: {},
|
|
|
|
providerConfig: {
|
|
|
|
type: 'rpc',
|
|
|
|
rpcUrl: 'http://example-custom-rpc.metamask.io',
|
|
|
|
chainId: '0x9999',
|
|
|
|
nickname: 'Test initial state',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
describe('add-ethereum-chain confirmation', () => {
|
|
|
|
it('should match snapshot', async () => {
|
|
|
|
const testStore = {
|
|
|
|
metamask: {
|
|
|
|
...mockBaseStore.metamask,
|
|
|
|
pendingApprovals: {
|
|
|
|
[mockApprovalId]: {
|
|
|
|
...mockApproval,
|
|
|
|
type: MESSAGE_TYPE.ADD_ETHEREUM_CHAIN,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
const store = configureMockStore(middleware)(testStore);
|
|
|
|
const { container, getByText } = renderWithProvider(
|
|
|
|
<Confirmation />,
|
|
|
|
store,
|
|
|
|
);
|
|
|
|
await waitFor(() => {
|
|
|
|
expect(
|
|
|
|
getByText('MetaMask does not verify custom networks.'),
|
|
|
|
).toBeInTheDocument();
|
|
|
|
expect(container.querySelector('.callout')).toBeDefined();
|
|
|
|
expect(container).toMatchSnapshot();
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|