1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-12-01 13:47:06 +01:00
metamask-extension/shared/modules/updateTxData.test.js

103 lines
3.2 KiB
JavaScript
Raw Normal View History

import { TransactionType } from '../constants/transaction';
import updateTxData from './updateTxData';
describe('updateTxData', () => {
const mockAddToAddressBookIfNew = jest.fn();
afterEach(() => {
mockAddToAddressBookIfNew.mockClear();
});
it('should add to address book if txData type is simpleSend', () => {
const txData = {
type: TransactionType.simpleSend,
};
updateTxData({
txData,
addToAddressBookIfNew: mockAddToAddressBookIfNew,
toAccounts: 'mockToAccounts',
toAddress: 'mockToAddress',
});
expect(mockAddToAddressBookIfNew).toHaveBeenCalledWith(
'mockToAddress',
'mockToAccounts',
);
});
it('should update estimatedBaseFee if baseFeePerGas is provided', () => {
const txData = {};
const result = updateTxData({
txData,
baseFeePerGas: 'mockBaseFeePerGas',
});
expect(result.estimatedBaseFee).toBe('mockBaseFeePerGas');
});
it('should update contractMethodName if name is provided', () => {
const txData = {};
const result = updateTxData({
txData,
name: 'mockName',
});
expect(result.contractMethodName).toBe('mockName');
});
it('should update dappProposedTokenAmount and originalApprovalAmount if dappProposedTokenAmount is provided', () => {
const txData = {};
const result = updateTxData({
txData,
dappProposedTokenAmount: 'mockDappProposedTokenAmount',
});
expect(result.dappProposedTokenAmount).toBe('mockDappProposedTokenAmount');
expect(result.originalApprovalAmount).toBe('mockDappProposedTokenAmount');
});
it('should update customTokenAmount and finalApprovalAmount if customTokenAmount is provided', () => {
const txData = {};
const result = updateTxData({
txData,
customTokenAmount: 'mockCustomTokenAmount',
});
expect(result.customTokenAmount).toBe('mockCustomTokenAmount');
expect(result.finalApprovalAmount).toBe('mockCustomTokenAmount');
});
it('should update finalApprovalAmount if dappProposedTokenAmount is provided but customTokenAmount is not', () => {
const txData = {};
const result = updateTxData({
txData,
dappProposedTokenAmount: 'mockDappProposedTokenAmount',
});
expect(result.finalApprovalAmount).toBe('mockDappProposedTokenAmount');
});
it('should update currentTokenBalance if currentTokenBalance is provided', () => {
const txData = {};
const result = updateTxData({
txData,
currentTokenBalance: 'mockCurrentTokenBalance',
});
expect(result.currentTokenBalance).toBe('mockCurrentTokenBalance');
});
it('should update maxFeePerGas in txParams if maxFeePerGas is provided', () => {
const txData = { txParams: {} };
const result = updateTxData({
txData,
maxFeePerGas: 'mockMaxFeePerGas',
});
expect(result.txParams.maxFeePerGas).toBe('mockMaxFeePerGas');
});
it('should update maxPriorityFeePerGas in txParams if maxPriorityFeePerGas is provided', () => {
const txData = { txParams: {} };
const result = updateTxData({
txData,
maxPriorityFeePerGas: 'mockMaxPriorityFeePerGas',
});
expect(result.txParams.maxPriorityFeePerGas).toBe(
'mockMaxPriorityFeePerGas',
);
});
});