1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-29 15:50:28 +01:00
metamask-extension/ui/pages/settings/contact-list-tab/add-contact/add-contact.test.js
Mark Stacey d1cea85f33
Rename provider to providerConfig (#18907)
* Rename `provider` to `providerConfig`

The network controller `provider` state has been renamed to
 `providerConfig`. This better reflects what this state is, and makes
this controller more closely aligned with the core network controller.

All references to the provider configuration have been updated to
prefer `providerConfig` over `provider`, to make the distinction clear
between a provider and provider config.

Closes #18902

* Add migration
2023-05-02 13:23:20 -02:30

64 lines
2.0 KiB
JavaScript

import React from 'react';
import { fireEvent } from '@testing-library/react';
import configureMockStore from 'redux-mock-store';
import thunk from 'redux-thunk';
import { renderWithProvider } from '../../../../../test/lib/render-helpers';
import '@testing-library/jest-dom/extend-expect';
import AddContact from './add-contact.component';
describe('AddContact component', () => {
const middleware = [thunk];
const state = {
metamask: {
providerConfig: {
type: 'mainnet',
nickname: '',
},
},
};
const props = {
history: { push: jest.fn() },
addToAddressBook: jest.fn(),
scanQrCode: jest.fn(),
qrCodeData: { type: 'address', values: { address: '0x123456789abcdef' } },
qrCodeDetected: jest.fn(),
domainResolution: '',
domainError: '',
resetDomainResolution: jest.fn(),
};
it('should render the component with correct properties', () => {
const store = configureMockStore(middleware)(state);
const { getByText } = renderWithProvider(<AddContact {...props} />, store);
expect(getByText('Username')).toBeInTheDocument();
expect(getByText('Ethereum public address')).toBeInTheDocument();
});
it('should validate the address correctly', () => {
const store = configureMockStore(middleware)(state);
const { getByText, getByTestId } = renderWithProvider(
<AddContact {...props} />,
store,
);
const input = getByTestId('ens-input');
fireEvent.change(input, { target: { value: 'invalid address' } });
setTimeout(() => {
expect(getByText('Recipient address is invalid')).toBeInTheDocument();
}, 100);
});
it('should get disabled submit button when username field is empty', () => {
const store = configureMockStore(middleware)(state);
const { getByText } = renderWithProvider(<AddContact {...props} />, store);
const input = document.getElementById('nickname');
fireEvent.change(input, { target: { value: '' } });
const saveButton = getByText('Save');
expect(saveButton).toBeDisabled();
});
});