You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Tag:
Branch:
Tree:
19ec45ef35
develop
feature/default_network_editable
v10.22.3
${ noResults }
68 lines
2.2 KiB
68 lines
2.2 KiB
/* eslint-disable jest/no-conditional-expect */
|
|||
import { ethers } from 'ethers';
|
|||
import { renderHook } from '@testing-library/react-hooks';
|
|||
|
import { TRANSACTION_TYPES } from '../../shared/constants/transaction';
|
||
import { useTokenData } from './useTokenData';
|
|||
|
|||
const tests = [
|
|||
{
|
|||
|
data:
|
||
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a970000000000000000000000000000000000000000000000000000000000003a98',
|
|||
tokenData: {
|
|||
name: TRANSACTION_TYPES.TOKEN_METHOD_TRANSFER,
|
|||
|
args: [
|
||
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
|
|||
ethers.BigNumber.from(15000),
|
|||
],
|
|||
},
|
|||
},
|
|||
{
|
|||
|
data:
|
||
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a9700000000000000000000000000000000000000000000000000000000000061a8',
|
|||
tokenData: {
|
|||
name: TRANSACTION_TYPES.TOKEN_METHOD_TRANSFER,
|
|||
|
args: [
|
||
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
|
|||
ethers.BigNumber.from(25000),
|
|||
],
|
|||
},
|
|||
},
|
|||
{
|
|||
|
data:
|
||
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a970000000000000000000000000000000000000000000000000000000000002710',
|
|||
tokenData: {
|
|||
name: TRANSACTION_TYPES.TOKEN_METHOD_TRANSFER,
|
|||
|
args: [
|
||
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
|
|||
ethers.BigNumber.from(10000),
|
|||
],
|
|||
},
|
|||
},
|
|||
{
|
|||
data: undefined,
|
|||
tokenData: null,
|
|||
},
|
|||
];
|
|||
|
|||
describe('useTokenData', () => {
|
|||
tests.forEach((test) => {
|
|||
|
const testTitle =
|
||
// eslint-disable-next-line no-negated-condition
|
|||
test.tokenData !== null
|
|||
? `should return properly decoded data with _value ${test.tokenData.args[1]}`
|
|||
: `should return null when no data provided`;
|
|||
it(`${testTitle}`, () => {
|
|||
const { result } = renderHook(() => useTokenData(test.data));
|
|||
if (test.tokenData) {
|
|||
expect(result.current.name).toStrictEqual(test.tokenData.name);
|
|||
expect(result.current.args[0].toLowerCase()).toStrictEqual(
|
|||
|
test.tokenData.args[0],
|
||
);
|
|||
expect(test.tokenData.args[1]).toStrictEqual(result.current.args[1]);
|
|||
} else {
|
|||
expect(result.current).toStrictEqual(test.tokenData);
|
|||
}
|
|||
});
|
|||
});
|
|||
});
|