mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-01 00:28:06 +01:00
a49a4a066c
* expand transaction constants coverage * touchups * dont import inside of e2e * Update app/scripts/controllers/transactions/tx-state-manager.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> * Update test/unit/app/controllers/transactions/tx-controller-test.js Co-authored-by: Mark Stacey <markjstacey@gmail.com> Co-authored-by: Mark Stacey <markjstacey@gmail.com>
68 lines
2.1 KiB
JavaScript
68 lines
2.1 KiB
JavaScript
import assert from 'assert'
|
|
import { ethers } from 'ethers'
|
|
import { renderHook } from '@testing-library/react-hooks'
|
|
import { useTokenData } from '../useTokenData'
|
|
import { TRANSACTION_CATEGORIES } from '../../../../shared/constants/transaction'
|
|
|
|
const tests = [
|
|
{
|
|
data:
|
|
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a970000000000000000000000000000000000000000000000000000000000003a98',
|
|
tokenData: {
|
|
name: TRANSACTION_CATEGORIES.TOKEN_METHOD_TRANSFER,
|
|
args: [
|
|
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
|
|
ethers.BigNumber.from(15000),
|
|
],
|
|
},
|
|
},
|
|
{
|
|
data:
|
|
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a9700000000000000000000000000000000000000000000000000000000000061a8',
|
|
tokenData: {
|
|
name: TRANSACTION_CATEGORIES.TOKEN_METHOD_TRANSFER,
|
|
args: [
|
|
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
|
|
ethers.BigNumber.from(25000),
|
|
],
|
|
},
|
|
},
|
|
{
|
|
data:
|
|
'0xa9059cbb000000000000000000000000ffe5bc4e8f1f969934d773fa67da095d2e491a970000000000000000000000000000000000000000000000000000000000002710',
|
|
tokenData: {
|
|
name: TRANSACTION_CATEGORIES.TOKEN_METHOD_TRANSFER,
|
|
args: [
|
|
'0xffe5bc4e8f1f969934d773fa67da095d2e491a97',
|
|
ethers.BigNumber.from(10000),
|
|
],
|
|
},
|
|
},
|
|
{
|
|
data: undefined,
|
|
tokenData: null,
|
|
},
|
|
]
|
|
|
|
describe('useTokenData', function () {
|
|
tests.forEach((test) => {
|
|
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)
|
|
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)
|
|
}
|
|
})
|
|
})
|
|
})
|