WA-232 Refactor code avoiding DRY
This commit is contained in:
parent
624b39717f
commit
1cdbf2b2f7
|
@ -1,18 +1,14 @@
|
||||||
// @flow
|
// @flow
|
||||||
import * as React from 'react'
|
|
||||||
import { type Store } from 'redux'
|
import { type Store } from 'redux'
|
||||||
import TestUtils from 'react-dom/test-utils'
|
import TestUtils from 'react-dom/test-utils'
|
||||||
import { Provider } from 'react-redux'
|
|
||||||
import { ConnectedRouter } from 'react-router-redux'
|
|
||||||
import SafeView from '~/routes/safe/component/Safe'
|
import SafeView from '~/routes/safe/component/Safe'
|
||||||
import { aNewStore, history, type GlobalState } from '~/store'
|
import { aNewStore, type GlobalState } from '~/store'
|
||||||
import { sleep } from '~/utils/timer'
|
import { sleep } from '~/utils/timer'
|
||||||
import { getWeb3 } from '~/wallets/getWeb3'
|
import { getWeb3 } from '~/wallets/getWeb3'
|
||||||
import AppRoutes from '~/routes'
|
|
||||||
import { SAFELIST_ADDRESS } from '~/routes/routes'
|
|
||||||
import { promisify } from '~/utils/promisify'
|
import { promisify } from '~/utils/promisify'
|
||||||
import { addEtherTo } from '~/test/utils/tokenMovements'
|
import { addEtherTo } from '~/test/utils/tokenMovements'
|
||||||
import { aMinedSafe } from '~/test/builder/safe.redux.builder'
|
import { aMinedSafe } from '~/test/builder/safe.redux.builder'
|
||||||
|
import { travelToSafe } from '~/test/builder/safe.dom.utils'
|
||||||
|
|
||||||
export type DomSafe = {
|
export type DomSafe = {
|
||||||
address: string,
|
address: string,
|
||||||
|
@ -34,14 +30,7 @@ export const renderSafeInDom = async (
|
||||||
// have available accounts
|
// have available accounts
|
||||||
const accounts = await promisify(cb => getWeb3().eth.getAccounts(cb))
|
const accounts = await promisify(cb => getWeb3().eth.getAccounts(cb))
|
||||||
// navigate to SAFE route
|
// navigate to SAFE route
|
||||||
history.push(`${SAFELIST_ADDRESS}/${address}`)
|
const SafeDom = travelToSafe(store, address)
|
||||||
const SafeDom = TestUtils.renderIntoDocument((
|
|
||||||
<Provider store={store}>
|
|
||||||
<ConnectedRouter history={history}>
|
|
||||||
<AppRoutes />
|
|
||||||
</ConnectedRouter>
|
|
||||||
</Provider>
|
|
||||||
))
|
|
||||||
|
|
||||||
// add funds to safe
|
// add funds to safe
|
||||||
await addEtherTo(address, '0.1')
|
await addEtherTo(address, '0.1')
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
// @flow
|
// @flow
|
||||||
|
import * as React from 'react'
|
||||||
import TestUtils from 'react-dom/test-utils'
|
import TestUtils from 'react-dom/test-utils'
|
||||||
import ListItemText from '~/components/List/ListItemText/index'
|
import ListItemText from '~/components/List/ListItemText/index'
|
||||||
import { SEE_MULTISIG_BUTTON_TEXT } from '~/routes/safe/component/Safe/MultisigTx'
|
import { SEE_MULTISIG_BUTTON_TEXT } from '~/routes/safe/component/Safe/MultisigTx'
|
||||||
import fetchTransactions from '~/routes/safe/store/actions/fetchTransactions'
|
import fetchTransactions from '~/routes/safe/store/actions/fetchTransactions'
|
||||||
import { sleep } from '~/utils/timer'
|
import { sleep } from '~/utils/timer'
|
||||||
import { type GlobalState } from '~/store/index'
|
import { Provider } from 'react-redux'
|
||||||
|
import { ConnectedRouter } from 'react-router-redux'
|
||||||
|
import AppRoutes from '~/routes'
|
||||||
|
import { SAFELIST_ADDRESS } from '~/routes/routes'
|
||||||
|
import { history, type GlobalState } from '~/store'
|
||||||
|
|
||||||
export const EXPAND_BALANCE_INDEX = 0
|
export const EXPAND_BALANCE_INDEX = 0
|
||||||
export const EXPAND_OWNERS_INDEX = 1
|
export const EXPAND_OWNERS_INDEX = 1
|
||||||
|
@ -85,3 +90,16 @@ export const refreshTransactions = async (store: Store<GlobalState>) => {
|
||||||
await store.dispatch(fetchTransactions())
|
await store.dispatch(fetchTransactions())
|
||||||
await sleep(1500)
|
await sleep(1500)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export const travelToSafe = (store: Store, address: string): React$Component<{}> => {
|
||||||
|
history.push(`${SAFELIST_ADDRESS}/${address}`)
|
||||||
|
const SafeDom = TestUtils.renderIntoDocument((
|
||||||
|
<Provider store={store}>
|
||||||
|
<ConnectedRouter history={history}>
|
||||||
|
<AppRoutes />
|
||||||
|
</ConnectedRouter>
|
||||||
|
</Provider>
|
||||||
|
))
|
||||||
|
|
||||||
|
return SafeDom
|
||||||
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ import { sendWithdrawForm, checkMinedWithdrawTx } from '~/test/utils/transaction
|
||||||
import { processTransaction } from '~/routes/safe/component/Transactions/processTransactions'
|
import { processTransaction } from '~/routes/safe/component/Transactions/processTransactions'
|
||||||
import { checkBalanceOf } from '~/test/utils/tokenMovements'
|
import { checkBalanceOf } from '~/test/utils/tokenMovements'
|
||||||
|
|
||||||
describe('DOM > Feature > SAFE MULTISIG TX 1 Owner 1 Threshold', () => {
|
describe('DOM > Feature > SAFE MULTISIG Transactions', () => {
|
||||||
let domSafe: DomSafe
|
let domSafe: DomSafe
|
||||||
it('mines correctly all multisig txs in a 1 owner & 1 threshold safe', async () => {
|
it('mines correctly all multisig txs in a 1 owner & 1 threshold safe', async () => {
|
||||||
// GIVEN one safe with 1 owner and 1 threshold
|
// GIVEN one safe with 1 owner and 1 threshold
|
||||||
|
|
|
@ -4,11 +4,11 @@ import { BALANCE_REDUCER_ID } from '~/routes/safe/store/reducer/balances'
|
||||||
import * as fetchBalancesAction from '~/routes/safe/store/actions/fetchBalances'
|
import * as fetchBalancesAction from '~/routes/safe/store/actions/fetchBalances'
|
||||||
import { aNewStore } from '~/store'
|
import { aNewStore } from '~/store'
|
||||||
import { aMinedSafe } from '~/test/builder/safe.redux.builder'
|
import { aMinedSafe } from '~/test/builder/safe.redux.builder'
|
||||||
import { type Balance, makeBalance } from '~/routes/safe/store/model/balance'
|
import { type Balance } from '~/routes/safe/store/model/balance'
|
||||||
import addBalances from '~/routes/safe/store/actions/addBalances'
|
|
||||||
import { addEtherTo, addTknTo } from '~/test/utils/tokenMovements'
|
import { addEtherTo, addTknTo } from '~/test/utils/tokenMovements'
|
||||||
|
import { dispatchTknBalance } from '~/test/utils/transactions/moveTokens.helper'
|
||||||
|
|
||||||
describe('Safe Actions[fetchBalance]', () => {
|
describe('Safe - redux balance property', () => {
|
||||||
let store
|
let store
|
||||||
let address: string
|
let address: string
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
|
@ -62,20 +62,7 @@ describe('Safe Actions[fetchBalance]', () => {
|
||||||
const tokenAddress = await addTknTo(address, numTokens)
|
const tokenAddress = await addTknTo(address, numTokens)
|
||||||
|
|
||||||
// WHEN
|
// WHEN
|
||||||
const fetchBalancesMock = jest.spyOn(fetchBalancesAction, 'fetchBalances')
|
await dispatchTknBalance(store, tokenAddress, address)
|
||||||
const funds = await fetchBalancesAction.calculateBalanceOf(tokenAddress, address)
|
|
||||||
|
|
||||||
const balances: Map<string, Balance> = Map().set('TKN', makeBalance({
|
|
||||||
address: tokenAddress,
|
|
||||||
name: 'Token',
|
|
||||||
symbol: 'TKN',
|
|
||||||
decimals: 18,
|
|
||||||
logoUrl: 'https://github.com/TrustWallet/tokens/blob/master/images/0x6810e776880c02933d47db1b9fc05908e5386b96.png?raw=true',
|
|
||||||
funds,
|
|
||||||
}))
|
|
||||||
fetchBalancesMock.mockImplementation(() => store.dispatch(addBalances(address, balances)))
|
|
||||||
await store.dispatch(fetchBalancesAction.fetchBalances(address))
|
|
||||||
fetchBalancesMock.mockRestore()
|
|
||||||
|
|
||||||
// THEN
|
// THEN
|
||||||
const safeBalances = store.getState()[BALANCE_REDUCER_ID].get(address)
|
const safeBalances = store.getState()[BALANCE_REDUCER_ID].get(address)
|
||||||
|
|
Loading…
Reference in New Issue