@@ -3,6 +3,12 @@ import { SubmittableTransaction } from 'xrpl';
33
44import { useFees } from './useFees' ;
55import { vi } from 'vitest' ;
6+ import { DEFAULT_RESERVE , RESERVE_PER_OWNER } from '../../constants' ;
7+
8+ const mockDefaultFee = '12' ;
9+ const mockOwnerCount = 2 ;
10+ const mockReservePerOwner = RESERVE_PER_OWNER ;
11+ const mockReserve = DEFAULT_RESERVE ;
612
713// Mock the modules and hooks that `useFees` depends on
814vi . mock ( '@sentry/react' , ( ) => ( {
@@ -13,9 +19,9 @@ let mockGetXrpBalance = () => Promise.resolve(50);
1319vi . mock ( '../../contexts' , ( ) => {
1420 return {
1521 useLedger : ( ) => ( {
16- estimateNetworkFees : vi . fn ( ) . mockResolvedValue ( '12' ) ,
22+ estimateNetworkFees : vi . fn ( ) . mockResolvedValue ( mockDefaultFee ) ,
1723 getAccountInfo : vi . fn ( ) . mockResolvedValue ( {
18- result : { account_data : { OwnerCount : 2 } }
24+ result : { account_data : { OwnerCount : mockOwnerCount } }
1925 } )
2026 } ) ,
2127 useNetwork : ( ) => ( {
@@ -28,7 +34,7 @@ vi.mock('../../contexts', () => {
2834 } ) ,
2935 useServer : ( ) => ( {
3036 serverInfo : {
31- info : { validated_ledger : { reserve_base_xrp : '20' } }
37+ info : { validated_ledger : { reserve_base_xrp : mockReserve } }
3238 }
3339 } ) ,
3440 useWallet : ( ) => ( { getCurrentWallet : ( ) => ( { publicAddress : 'address' } ) } )
@@ -106,22 +112,26 @@ describe('useFees', () => {
106112 it ( 'should calculate difference correctly when a fee is provided' , async ( ) => {
107113 const { result } = renderHook ( ( ) => useFees ( transaction , '199' ) ) ;
108114
109- // Check the results
110- // balance = 50, reserve = 20 + 2 * 2 = 24, fee = dropsToXrp(199) = 0.000199
111- // So, difference = balance - reserve - fee = 50 - 24 - 0.000199 = 25.999801
112- await waitFor ( ( ) => expect ( result . current . difference ) . toEqual ( 25.999801 ) ) ;
115+ const balance = 50 ;
116+ const reserve = mockReserve + 2 * mockReservePerOwner ;
117+ const fee = 0.000199 ;
118+ const difference = balance - reserve - fee ;
119+
120+ await waitFor ( ( ) => expect ( result . current . difference ) . toEqual ( difference ) ) ;
113121 } ) ;
114122
115123 it ( 'should calculate difference correctly when balance is more than reserve + fees' , async ( ) => {
116124 // Set the balance to be more than reserve + fees
117-
118125 mockGetXrpBalance = ( ) => Promise . resolve ( 100 ) ;
119126
120127 const { result } = renderHook ( ( ) => useFees ( transaction , null ) ) ;
121128
122- // balance = 100, reserve = 20 + 2 * 2 = 24, fee = 12 drops
123- // So, difference = balance - reserve - fee = 100 - 24 - 0.000012 = 75.999988
124- await waitFor ( ( ) => expect ( result . current . difference ) . toEqual ( 75.999988 ) ) ;
129+ const balance = 100 ;
130+ const reserve = mockReserve + 2 * mockReservePerOwner ;
131+ const fee = 0.000012 ;
132+ const difference = balance - reserve - fee ;
133+
134+ await waitFor ( ( ) => expect ( result . current . difference ) . toEqual ( difference ) ) ;
125135 } ) ;
126136
127137 it ( 'should calculate difference correctly when balance is less than reserve + fees' , async ( ) => {
@@ -130,9 +140,12 @@ describe('useFees', () => {
130140
131141 const { result } = renderHook ( ( ) => useFees ( transaction , null ) ) ;
132142
133- // balance = 20, reserve = 20 + 2 * 2 = 24, fee = 12 drops
134- // So, difference = balance - reserve - fee = 20 - 24 - 0.000012 = -4.000012
135- await waitFor ( ( ) => expect ( result . current . difference ) . toEqual ( - 4.000012 ) ) ;
143+ const balance = 20 ;
144+ const reserve = mockReserve + 2 * mockReservePerOwner ;
145+ const fee = 0.000012 ;
146+ const difference = balance - reserve - fee ;
147+
148+ await waitFor ( ( ) => expect ( result . current . difference ) . toEqual ( difference ) ) ;
136149 } ) ;
137150 } ) ;
138151} ) ;
0 commit comments