1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-30 08:09:15 +01:00
metamask-extension/ui/hooks/useTokenDisplayValue.test.js

145 lines
3.0 KiB
JavaScript
Raw Normal View History

import { renderHook } from '@testing-library/react-hooks';
import sinon from 'sinon';
import * as txUtil from '../../shared/modules/transaction.utils';
import * as metamaskControllerUtils from '../../shared/lib/metamask-controller-utils';
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', () => {
tests.forEach(({ displayValue, token, tokenData, tokenValue }, idx) => {
describe(`when input is decimals: ${token.decimals} and value: ${tokenValue}`, () => {
it(`should return ${displayValue} as displayValue`, () => {
const getTokenValueStub = sinon.stub(
metamaskControllerUtils,
'getTokenValueParam',
);
const parseStandardTokenTransactionDataStub = sinon.stub(
txUtil,
'parseStandardTokenTransactionData',
);
parseStandardTokenTransactionDataStub.callsFake(() => tokenData);
getTokenValueStub.callsFake(() => tokenValue);
2020-11-03 00:41:28 +01:00
const { result } = renderHook(() =>
useTokenDisplayValue(`${idx}-fakestring`, token),
);
sinon.restore();
expect(result.current).toStrictEqual(displayValue);
});
});
});
});