import React from 'react'; import sinon from 'sinon'; import { shallow } from 'enzyme'; import AccountDetailsModal from './account-details-modal.container'; describe('Account Details Modal', () => { let wrapper; global.platform = { openTab: sinon.spy() }; const props = { hideModal: sinon.spy(), setAccountLabel: sinon.spy(), showExportPrivateKeyModal: sinon.spy(), network: 'test', rpcPrefs: {}, selectedIdentity: { address: '0xAddress', name: 'Account 1', }, keyrings: [ { type: 'HD Key Tree', accounts: ['0xAddress'], }, ], identities: { '0xAddress': { address: '0xAddress', name: 'Account 1', }, }, accounts: { address: '0xAddress', lastSelected: 1637764711510, name: 'Account 1', balance: '0x543a5fb6caccf599', }, blockExplorerLinkText: { firstPart: 'addBlockExplorer', secondPart: '', }, }; beforeEach(() => { wrapper = shallow(, { context: { t: (str) => str, trackEvent: (e) => e, }, }); }); it('sets account label when changing default account label', () => { const accountLabel = wrapper.find('.account-details-modal__name').first(); accountLabel.simulate('submit', 'New Label'); expect(props.setAccountLabel.calledOnce).toStrictEqual(true); expect(props.setAccountLabel.getCall(0).args[1]).toStrictEqual('New Label'); }); it('opens new tab when view block explorer is clicked', () => { wrapper.setProps({ blockExplorerLinkText: { firstPart: 'viewOnEtherscan', secondPart: 'blockExplorerAccountAction', }, }); const modalButton = wrapper.find('.account-details-modal__button'); const etherscanLink = modalButton.first(); etherscanLink.simulate('click'); expect(global.platform.openTab.calledOnce).toStrictEqual(true); }); it('shows export private key modal when clicked', () => { const modalButton = wrapper.find('.account-details-modal__button'); const etherscanLink = modalButton.last(); etherscanLink.simulate('click'); expect(props.showExportPrivateKeyModal.calledOnce).toStrictEqual(true); }); it('sets blockexplorerview text when block explorer url in rpcPrefs exists', () => { const blockExplorerUrl = 'https://block.explorer'; wrapper.setProps({ rpcPrefs: { blockExplorerUrl }, blockExplorerLinkText: { firstPart: 'blockExplorerView' }, }); const modalButton = wrapper.find('.account-details-modal__button'); const blockExplorerLink = modalButton.first().shallow(); expect(blockExplorerLink.text()).toStrictEqual('blockExplorerView'); }); });