Merge pull request #174 from gnosis/test/token-balance-updates
Test: Token balance updates
This commit is contained in:
commit
910bd5c9a2
|
@ -0,0 +1,73 @@
|
|||
// @flow
|
||||
import { waitForElement } from '@testing-library/react'
|
||||
import { List } from 'immutable'
|
||||
import { aNewStore } from '~/store'
|
||||
import { sleep } from '~/utils/timer'
|
||||
import { aMinedSafe } from '~/test/builder/safe.redux.builder'
|
||||
import { sendTokenTo, sendEtherTo } from '~/test/utils/tokenMovements'
|
||||
import { renderSafeView } from '~/test/builder/safe.dom.utils'
|
||||
import { dispatchAddTokenToList } from '~/test/utils/transactions/moveTokens.helper'
|
||||
import TokenBalanceRecord from '~/routes/safe/store/models/tokenBalance'
|
||||
import { calculateBalanceOf } from '~/routes/safe/store/actions/fetchTokenBalances'
|
||||
import updateActiveTokens from '~/routes/safe/store/actions/updateActiveTokens'
|
||||
import '@testing-library/jest-dom/extend-expect'
|
||||
import updateSafe from '~/routes/safe/store/actions/updateSafe'
|
||||
import { BALANCE_ROW_TEST_ID } from '~/routes/safe/components/Balances'
|
||||
import { getBalanceInEtherOf } from '~/logic/wallets/getWeb3'
|
||||
|
||||
describe('DOM > Feature > Balances', () => {
|
||||
let store
|
||||
let safeAddress: string
|
||||
beforeEach(async () => {
|
||||
store = aNewStore()
|
||||
safeAddress = await aMinedSafe(store)
|
||||
})
|
||||
|
||||
it('Updates token balances automatically', async () => {
|
||||
const tokensAmount = '100'
|
||||
const tokenAddress = await sendTokenTo(safeAddress, tokensAmount)
|
||||
await dispatchAddTokenToList(store, tokenAddress)
|
||||
|
||||
const SafeDom = await renderSafeView(store, safeAddress)
|
||||
|
||||
// Activate token
|
||||
const safeTokenBalance = await calculateBalanceOf(tokenAddress, safeAddress, 18)
|
||||
expect(safeTokenBalance).toBe(tokensAmount)
|
||||
|
||||
const balanceAsRecord = TokenBalanceRecord({
|
||||
address: tokenAddress,
|
||||
balance: safeTokenBalance,
|
||||
})
|
||||
store.dispatch(updateActiveTokens(safeAddress, List([tokenAddress])))
|
||||
store.dispatch(updateSafe({ address: safeAddress, balances: List([balanceAsRecord]) }))
|
||||
await sleep(1000)
|
||||
|
||||
const balanceRows = SafeDom.getAllByTestId(BALANCE_ROW_TEST_ID)
|
||||
expect(balanceRows.length).toBe(2)
|
||||
|
||||
await waitForElement(() => SafeDom.getByText(`${tokensAmount} OMG`))
|
||||
|
||||
await sendTokenTo(safeAddress, tokensAmount)
|
||||
|
||||
await waitForElement(() => SafeDom.getByText(`${parseInt(tokensAmount, 10) * 2} OMG`))
|
||||
})
|
||||
|
||||
it('Updates ether balance automatically', async () => {
|
||||
const etherAmount = '1'
|
||||
await sendEtherTo(safeAddress, etherAmount)
|
||||
|
||||
const SafeDom = await renderSafeView(store, safeAddress)
|
||||
|
||||
const safeEthBalance = await getBalanceInEtherOf(safeAddress)
|
||||
expect(safeEthBalance).toBe(etherAmount)
|
||||
|
||||
const balanceRows = SafeDom.getAllByTestId(BALANCE_ROW_TEST_ID)
|
||||
expect(balanceRows.length).toBe(1)
|
||||
|
||||
await waitForElement(() => SafeDom.getByText(`${etherAmount} ETH`))
|
||||
|
||||
await sendEtherTo(safeAddress, etherAmount)
|
||||
|
||||
await waitForElement(() => SafeDom.getByText(`${parseInt(etherAmount, 10) * 2} ETH`))
|
||||
})
|
||||
})
|
|
@ -24,7 +24,7 @@ export const getLastTransaction = async (SafeDom: React.Component<any, any>) =>
|
|||
|
||||
export const checkRegisteredTxSend = async (
|
||||
SafeDom: React.Component<any, any>,
|
||||
ethAmount: number,
|
||||
ethAmount: number | string,
|
||||
symbol: string,
|
||||
ethAddress: string,
|
||||
) => {
|
||||
|
|
Loading…
Reference in New Issue