1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-27 12:56:01 +01:00
metamask-extension/ui/hooks/useTokenData.test.js
Mark Stacey ba54a3d83b
Update ESLint config to v8 (#12886)
The ESLint config has been updated to v8. The breaking changes are:

* The Prettier rule `quoteProps` has been changed from `consistent` to
`as-needed`, meaning that if one key requires quoting, only that key is
quoted rather than all keys.
* The ESLint rule `no-shadow` has been made more strict. It now
prevents globals from being shadowed as well.

Most of these changes were applied with `yarn lint:fix`. Only the
shadowing changes required manual fixing (shadowing variable names were
either replaced with destructuring or renamed).

The dependency `globalThis` was added to the list of dynamic
dependencies in the build system, where it should have been already.
This was causing `depcheck` to fail because the new lint rules required
removing the one place where `globalThis` had been erroneously imported
previously.

A rule requiring a newline between multiline blocks and expressions has
been disabled temporarily to make this PR smaller and to avoid
introducing conflicts with other PRs.
2021-12-09 15:36:24 -03:30

68 lines
2.1 KiB
JavaScript

/* 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(({ data, tokenData }) => {
const testTitle =
// eslint-disable-next-line no-negated-condition
tokenData !== null
? `should return properly decoded data with _value ${tokenData.args[1]}`
: `should return null when no data provided`;
it(`${testTitle}`, () => {
const { result } = renderHook(() => useTokenData(data));
if (tokenData) {
expect(result.current.name).toStrictEqual(tokenData.name);
expect(result.current.args[0].toLowerCase()).toStrictEqual(
tokenData.args[0],
);
expect(tokenData.args[1]).toStrictEqual(result.current.args[1]);
} else {
expect(result.current).toStrictEqual(tokenData);
}
});
});
});