From 654c378a8f52e5e66ad9f0bcd454b61dd6edb678 Mon Sep 17 00:00:00 2001 From: michaeltomasik Date: Fri, 16 Mar 2018 15:25:53 +0100 Subject: [PATCH] Refactor of code --- src/components/header/header.js | 13 +++++-------- src/components/header/index.js | 2 +- src/components/header/index.test.js | 4 ++-- .../savedAccounts/savedAccounts.css | 2 +- src/components/savedAccounts/savedAccounts.js | 2 +- .../savedAccounts/savedAccounts.test.js | 19 ++++++++++++++++++- src/store/reducers/savedAccounts.js | 2 +- 7 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/components/header/header.js b/src/components/header/header.js index 2339516db2c..b6855164dfa 100644 --- a/src/components/header/header.js +++ b/src/components/header/header.js @@ -49,23 +49,20 @@ class Header extends React.Component { {this.props.autoLog ?
- {((!this.props.account.expireTime || - this.props.account.expireTime === 0) || - !this.props.account.passphrase) ? - {this.props.t('Account locked!')} : + {((this.props.account.expireTime && + this.props.account.expireTime !== 0) && + this.props.account.passphrase) ?
{this.props.t('Address timeout in')} { - this.props.removePassphrase(this.props.account); - this.props.removeSavedAccountPassphrase(this.props.account); + this.props.removeSavedAccountPassphrase(); } } /> -
} +
:
} :
{this.props.account.passphrase ? '' : diff --git a/src/components/header/index.js b/src/components/header/index.js index 68a6a535829..88220b3db71 100644 --- a/src/components/header/index.js +++ b/src/components/header/index.js @@ -17,7 +17,7 @@ const mapDispatchToProps = dispatch => ({ setActiveDialog: data => dispatch(dialogDisplayed(data)), logOut: () => dispatch(accountLoggedOut()), removePassphrase: data => dispatch(removePassphrase(data)), - removeSavedAccountPassphrase: data => dispatch(removeSavedAccountPassphrase(data)), + removeSavedAccountPassphrase: () => dispatch(removeSavedAccountPassphrase()), }); export default withRouter(connect( mapStateToProps, diff --git a/src/components/header/index.test.js b/src/components/header/index.test.js index 2924050f66e..3fde7d036fe 100644 --- a/src/components/header/index.test.js +++ b/src/components/header/index.test.js @@ -63,8 +63,8 @@ describe('HeaderHOC', () => { it('should dispatch removeSavedAccountPassphrase action', () => { const actionsSpy = sinon.spy(savedAccountsActions, 'removeSavedAccountPassphrase'); - wrapper.find(Header).props().removeSavedAccountPassphrase({}); - expect(actionsSpy).to.be.calledWith({}); + wrapper.find(Header).props().removeSavedAccountPassphrase(); + expect(actionsSpy).to.be.calledWith(); actionsSpy.restore(); }); }); diff --git a/src/components/savedAccounts/savedAccounts.css b/src/components/savedAccounts/savedAccounts.css index a9614453aab..e45e3480887 100644 --- a/src/components/savedAccounts/savedAccounts.css +++ b/src/components/savedAccounts/savedAccounts.css @@ -202,13 +202,13 @@ & span { margin-bottom: 3px; + transition: transform ease-in-out 500ms; } &:hover { & span { transform: scale(1.1); transform-origin: 100%; - transition: transform ease-in-out 500ms; } } } diff --git a/src/components/savedAccounts/savedAccounts.js b/src/components/savedAccounts/savedAccounts.js index 115c6006394..389f0ee7b34 100644 --- a/src/components/savedAccounts/savedAccounts.js +++ b/src/components/savedAccounts/savedAccounts.js @@ -73,7 +73,7 @@ class SavedAccounts extends React.Component { this.setState({ isSecureAppears: { ...this.state.isSecureAppears, [uniqueID]: true } }); setTimeout(() => { this.setState({ isSecureAppears: { ...this.state.isSecureAppears, [uniqueID]: false } }); - }, 3000); + }, 5000); } render() { diff --git a/src/components/savedAccounts/savedAccounts.test.js b/src/components/savedAccounts/savedAccounts.test.js index a1bc6b3f620..fef7e70c588 100644 --- a/src/components/savedAccounts/savedAccounts.test.js +++ b/src/components/savedAccounts/savedAccounts.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { expect } from 'chai'; import { MemoryRouter as Router } from 'react-router-dom'; import { mount } from 'enzyme'; -import { spy } from 'sinon'; +import { spy, useFakeTimers } from 'sinon'; import configureStore from 'redux-mock-store'; import PropTypes from 'prop-types'; import i18n from '../../i18n'; @@ -106,6 +106,23 @@ describe('SavedAccounts', () => { expect(props.history.push).to.have.been.calledWith(`${routes.main.path}${routes.dashboard.path}`); }); + it('should check if "Your ID is now secured!" disapears after 5sec', () => { + const clock = useFakeTimers({ + toFake: ['setTimeout', 'clearTimeout', 'Date'], + }); + + expect(wrapper.find('strong.unlockedSecured')).to.have.lengthOf(0); + wrapper.find('strong.unlocked').at(1).simulate('click'); + clock.tick(2000); + expect(wrapper.find('strong.unlockedSecured')).to.have.lengthOf(1); + + clock.tick(7000); + wrapper.update(); + expect(wrapper.find('strong.unlockedSecured')).to.have.lengthOf(0); + + clock.restore(); + }); + it('should not call props.accountSwitched on the "saved account card" click if in "edit" mode', () => { wrapper.find('button.edit-button').simulate('click'); wrapper.find('.saved-account-card').at(0).simulate('click'); diff --git a/src/store/reducers/savedAccounts.js b/src/store/reducers/savedAccounts.js index 50c6ec606be..38825612fdd 100644 --- a/src/store/reducers/savedAccounts.js +++ b/src/store/reducers/savedAccounts.js @@ -63,7 +63,7 @@ const savedAccounts = (state = { accounts: [] }, action) => { return { ...state, accounts: state.accounts.map((account) => { - if ((`${action.data.network}${action.data.passphrase}` === `${account.network}${account.passphrase}`)) { + if (!action.data || (`${action.data.network}${action.data.passphrase}` === `${account.network}${account.passphrase}`)) { delete account.passphrase; } return account;