1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-01 00:28:06 +01:00
metamask-extension/ui/app/hooks/tests/useTokenData.test.js

67 lines
1.9 KiB
JavaScript
Raw Normal View History

import assert from 'assert'
import { ethers } from 'ethers'
import { renderHook } from '@testing-library/react-hooks'
import { useTokenData } from '../useTokenData'
const tests = [
{
2020-11-03 00:41:28 +01:00
data:
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a970000000000000000000000000000000000000000000000000000000000003a98',
tokenData: {
2020-11-03 00:41:28 +01:00
name: 'transfer',
args: [
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
ethers.BigNumber.from(15000),
],
},
},
{
2020-11-03 00:41:28 +01:00
data:
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a9700000000000000000000000000000000000000000000000000000000000061a8',
tokenData: {
2020-11-03 00:41:28 +01:00
name: 'transfer',
args: [
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
ethers.BigNumber.from(25000),
],
},
},
{
2020-11-03 00:41:28 +01:00
data:
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a970000000000000000000000000000000000000000000000000000000000002710',
tokenData: {
2020-11-03 00:41:28 +01:00
name: 'transfer',
args: [
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
ethers.BigNumber.from(10000),
],
},
},
{
data: undefined,
tokenData: null,
},
]
describe('useTokenData', function () {
tests.forEach((test) => {
2020-11-03 00:41:28 +01:00
const testTitle =
test.tokenData === null
? `should return null when no data provided`
: `should return properly decoded data with _value ${test.tokenData.args[1].value}`
it(testTitle, function () {
const { result } = renderHook(() => useTokenData(test.data))
if (test.tokenData) {
assert.equal(result.current.name, test.tokenData.name)
2020-11-03 00:41:28 +01:00
assert.equal(
result.current.args[0].toLowerCase(),
test.tokenData.args[0],
)
assert.ok(test.tokenData.args[1].eq(result.current.args[1]))
} else {
assert.equal(result.current, test.tokenData)
}
})
})
})