1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-18 07:23:21 +01:00
metamask-extension/ui/app/hooks/tests/useTokenDisplayValue.test.js
2020-12-03 09:46:22 -06:00

138 lines
2.8 KiB
JavaScript

import assert from 'assert'
import { renderHook } from '@testing-library/react-hooks'
import sinon from 'sinon'
import * as tokenUtil from '../../helpers/utils/token-util'
import * as txUtil from '../../helpers/utils/transactions.util'
import { useTokenDisplayValue } from '../useTokenDisplayValue'
const tests = [
{
token: {
symbol: 'DAI',
decimals: 18,
},
tokenData: {
args: 'decoded-params1',
},
tokenValue: '1000000000000000000',
displayValue: '1',
},
{
token: {
symbol: 'DAI',
decimals: 18,
},
tokenData: {
args: 'decoded-params2',
},
tokenValue: '10000000000000000000',
displayValue: '10',
},
{
token: {
symbol: 'DAI',
decimals: 18,
},
tokenData: {
args: 'decoded-params3',
},
tokenValue: '1500000000000000000',
displayValue: '1.5',
},
{
token: {
symbol: 'DAI',
decimals: 18,
},
tokenData: {
args: 'decoded-params4',
},
tokenValue: '1756000000000000000',
displayValue: '1.756',
},
{
token: {
symbol: 'DAI',
decimals: 18,
},
tokenData: {
args: 'decoded-params5',
},
tokenValue: '25500000000000000000',
displayValue: '25.5',
},
{
token: {
symbol: 'USDC',
decimals: 6,
},
tokenData: {
args: 'decoded-params6',
},
tokenValue: '1000000',
displayValue: '1',
},
{
token: {
symbol: 'USDC',
decimals: 6,
},
tokenData: {
args: 'decoded-params7',
},
tokenValue: '10000000',
displayValue: '10',
},
{
token: {
symbol: 'USDC',
decimals: 6,
},
tokenData: {
args: 'decoded-params8',
},
tokenValue: '1500000',
displayValue: '1.5',
},
{
token: {
symbol: 'USDC',
decimals: 6,
},
tokenData: {
args: 'decoded-params9',
},
tokenValue: '1756000',
displayValue: '1.756',
},
{
token: {
symbol: 'USDC',
decimals: 6,
},
tokenData: {
args: 'decoded-params10',
},
tokenValue: '25500000',
displayValue: '25.5',
},
]
describe('useTokenDisplayValue', function () {
tests.forEach((test, idx) => {
describe(`when input is decimals: ${test.token.decimals} and value: ${test.tokenValue}`, function () {
it(`should return ${test.displayValue} as displayValue`, function () {
const getTokenValueStub = sinon.stub(tokenUtil, 'getTokenValueParam')
const getTokenDataStub = sinon.stub(txUtil, 'getTokenData')
getTokenDataStub.callsFake(() => test.tokenData)
getTokenValueStub.callsFake(() => test.tokenValue)
const { result } = renderHook(() =>
useTokenDisplayValue(`${idx}-fakestring`, test.token),
)
sinon.restore()
assert.strictEqual(result.current, test.displayValue)
})
})
})
})