@@ -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} ) ;
0 commit comments