Skip to content

Commit daf60c6

Browse files
committed
Add unit tests
1 parent 04baed7 commit daf60c6

File tree

2 files changed

+70
-28
lines changed

2 files changed

+70
-28
lines changed

app/components/Views/confirmations/hooks/alerts/useInsufficientPayTokenBalanceAlert.test.ts

Lines changed: 70 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ describe('useInsufficientPayTokenBalanceAlert', () => {
8787
});
8888

8989
it('returns alert if pay token balance is less than required token amount', () => {
90-
useTransactionPayTokenMock.mockReturnValueOnce({
90+
useTransactionPayTokenMock.mockReturnValue({
9191
payToken: {
9292
...PAY_TOKEN_MOCK,
9393
balanceUsd: '1.22',
@@ -111,14 +111,14 @@ describe('useInsufficientPayTokenBalanceAlert', () => {
111111
});
112112

113113
it('ignores required token amount if skipIfBalance', () => {
114-
useTransactionPayRequiredTokensMock.mockReturnValueOnce([
114+
useTransactionPayRequiredTokensMock.mockReturnValue([
115115
{
116116
...REQUIRED_TOKEN_MOCK,
117117
skipIfBalance: true,
118118
},
119119
]);
120120

121-
useTransactionPayTokenMock.mockReturnValueOnce({
121+
useTransactionPayTokenMock.mockReturnValue({
122122
payToken: {
123123
...PAY_TOKEN_MOCK,
124124
balanceUsd: '1.22',
@@ -134,7 +134,7 @@ describe('useInsufficientPayTokenBalanceAlert', () => {
134134

135135
describe('for fees', () => {
136136
it('returns alert if pay token balance is less than total source amount', () => {
137-
useTransactionPayTokenMock.mockReturnValueOnce({
137+
useTransactionPayTokenMock.mockReturnValue({
138138
payToken: {
139139
...PAY_TOKEN_MOCK,
140140
balanceRaw: '999',
@@ -160,7 +160,7 @@ describe('useInsufficientPayTokenBalanceAlert', () => {
160160
});
161161

162162
it('returns alert if pay token balance is less than source amount plus source network', () => {
163-
useTransactionPayTokenMock.mockReturnValueOnce({
163+
useTransactionPayTokenMock.mockReturnValue({
164164
payToken: {
165165
...PAY_TOKEN_MOCK,
166166
address: NATIVE_TOKEN_MOCK.address as Hex,
@@ -185,11 +185,45 @@ describe('useInsufficientPayTokenBalanceAlert', () => {
185185
},
186186
]);
187187
});
188+
189+
it('returns alert if pay token balance is less than source amount plus source network if gas fee token', () => {
190+
useTransactionPayTokenMock.mockReturnValue({
191+
payToken: {
192+
...PAY_TOKEN_MOCK,
193+
balanceRaw: '1099',
194+
},
195+
setPayToken: jest.fn(),
196+
});
197+
198+
useTransactionPayTotalsMock.mockReturnValue({
199+
...TOTALS_MOCK,
200+
fees: {
201+
...TOTALS_MOCK.fees,
202+
isSourceGasFeeToken: true,
203+
},
204+
});
205+
206+
const { result } = runHook();
207+
208+
expect(result.current).toStrictEqual([
209+
{
210+
key: AlertKeys.InsufficientPayTokenFees,
211+
field: RowAlertKey.Amount,
212+
isBlocking: true,
213+
title: strings('alert_system.insufficient_pay_token_balance.message'),
214+
message: strings(
215+
'alert_system.insufficient_pay_token_balance_fees.message',
216+
{ amount: '$1.11' },
217+
),
218+
severity: Severity.Danger,
219+
},
220+
]);
221+
});
188222
});
189223

190224
describe('for source network fee', () => {
191225
it('returns alert if native balance is less than total source network fee', () => {
192-
useTokenWithBalanceMock.mockReturnValueOnce({
226+
useTokenWithBalanceMock.mockReturnValue({
193227
...NATIVE_TOKEN_MOCK,
194228
balanceRaw: '99',
195229
} as ReturnType<typeof useTokenWithBalance>);
@@ -212,12 +246,12 @@ describe('useInsufficientPayTokenBalanceAlert', () => {
212246
});
213247

214248
it('returns no alert if pay token is native', () => {
215-
useTokenWithBalanceMock.mockReturnValueOnce({
249+
useTokenWithBalanceMock.mockReturnValue({
216250
...NATIVE_TOKEN_MOCK,
217251
balanceRaw: '99',
218252
} as ReturnType<typeof useTokenWithBalance>);
219253

220-
useTransactionPayTokenMock.mockReturnValueOnce({
254+
useTransactionPayTokenMock.mockReturnValue({
221255
payToken: {
222256
...PAY_TOKEN_MOCK,
223257
address: NATIVE_TOKEN_MOCK.address as Hex,
@@ -230,5 +264,33 @@ describe('useInsufficientPayTokenBalanceAlert', () => {
230264

231265
expect(result.current).toStrictEqual([]);
232266
});
267+
268+
it('returns no alert if source network is using gas fee token', () => {
269+
useTokenWithBalanceMock.mockReturnValue({
270+
...NATIVE_TOKEN_MOCK,
271+
balanceRaw: '99',
272+
} as ReturnType<typeof useTokenWithBalance>);
273+
274+
useTransactionPayTotalsMock.mockReturnValue({
275+
...TOTALS_MOCK,
276+
fees: {
277+
...TOTALS_MOCK.fees,
278+
isSourceGasFeeToken: true,
279+
},
280+
sourceAmount: TOTALS_MOCK.sourceAmount,
281+
});
282+
283+
useTransactionPayTokenMock.mockReturnValue({
284+
payToken: {
285+
...PAY_TOKEN_MOCK,
286+
balanceRaw: '1100',
287+
},
288+
setPayToken: jest.fn(),
289+
});
290+
291+
const { result } = runHook();
292+
293+
expect(result.current).toStrictEqual([]);
294+
});
233295
});
234296
});

app/components/Views/confirmations/utils/transaction-pay.test.ts

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import {
1919
TransactionPaymentToken,
2020
} from '@metamask/transaction-pay-controller';
2121
import { Hex } from '@metamask/utils';
22-
import { strings } from '../../../../../locales/i18n';
2322

2423
const CHAIN_ID_MOCK = '0x1';
2524
const TO_MOCK = '0x0987654321098765432109876543210987654321';
@@ -200,25 +199,6 @@ describe('Transaction Pay Utils', () => {
200199
expect(result).toMatchObject([tokenWithZeroBalance]);
201200
});
202201

203-
it('returns disabled token with message if no native gas', async () => {
204-
const nonNativeToken = {
205-
...TOKEN_MOCK,
206-
address: '0x234',
207-
} as AssetType;
208-
209-
const result = getAvailableTokens({
210-
tokens: [nonNativeToken] as AssetType[],
211-
});
212-
213-
expect(result).toMatchObject([
214-
{
215-
...nonNativeToken,
216-
disabled: true,
217-
disabledMessage: strings('pay_with_modal.no_gas'),
218-
},
219-
]);
220-
});
221-
222202
it('does not return token if no balance', async () => {
223203
const tokenWithZeroBalance = {
224204
...TOKEN_MOCK,

0 commit comments

Comments
 (0)