1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-22 09:57:02 +01:00
metamask-extension/ui/helpers/utils/transactions.util.test.js

97 lines
2.9 KiB
JavaScript
Raw Permalink Normal View History

import { HttpProvider } from 'ethjs';
import nock from 'nock';
import {
TransactionGroupStatus,
TransactionStatus,
TransactionEnvelopeType,
} from '../../../shared/constants/transaction';
import * as utils from './transactions.util';
2018-09-19 02:20:28 +02:00
describe('Transactions utils', () => {
describe('getStatusKey', () => {
it('should return the correct status', () => {
const tests = [
{
transaction: {
status: TransactionStatus.confirmed,
txReceipt: {
status: '0x0',
},
},
expected: TransactionStatus.failed,
},
{
transaction: {
status: TransactionStatus.confirmed,
txReceipt: {
status: '0x1',
},
},
expected: TransactionStatus.confirmed,
},
{
transaction: {
status: TransactionGroupStatus.pending,
},
expected: TransactionGroupStatus.pending,
},
];
tests.forEach(({ transaction, expected }) => {
expect(utils.getStatusKey(transaction)).toStrictEqual(expected);
});
});
});
describe('isLegacyTransaction', () => {
it('should return true if transaction is type-0', () => {
expect(
utils.isLegacyTransaction({ type: TransactionEnvelopeType.legacy }),
).toStrictEqual(true);
});
it('should return false if transaction is not type-0', () => {
expect(
utils.isLegacyTransaction({
type: TransactionEnvelopeType.feeMarket,
}),
).toStrictEqual(false);
});
});
describe('getMethodDataAsync', () => {
global.ethereumProvider = new HttpProvider(
'https://mainnet.infura.io/v3/341eacb578dd44a1a049cbc5f6fd4035',
);
it('returns a valid signature for setApprovalForAll when use4ByteResolution privacy setting is ON', async () => {
nock('https://www.4byte.directory:443', { encodedQueryParams: true })
.get('/api/v1/signatures/')
.query({ hex_signature: '0xa22cb465' })
.reply(200, {
count: 2,
next: null,
previous: null,
results: [
{
id: 841519,
created_at: '2022-06-12T00:50:19.305588Z',
text_signature: 'niceFunctionHerePlzClick943230089(address,bool)',
hex_signature: '0xa22cb465',
bytes_signature: '¢,´e',
},
{
id: 29659,
created_at: '2018-04-11T21:47:39.980645Z',
text_signature: 'setApprovalForAll(address,bool)',
hex_signature: '0xa22cb465',
bytes_signature: '¢,´e',
},
],
});
expect(await utils.getMethodDataAsync('0xa22cb465', true)).toStrictEqual({
name: 'Set Approval For All',
params: [{ type: 'address' }, { type: 'bool' }],
});
});
});
});