Skip to content

Commit 13a4cad

Browse files
test(evm): update test cases
1 parent 43e1106 commit 13a4cad

9 files changed

Lines changed: 228 additions & 227 deletions

File tree

apps/evm/src/clients/api/mutations/useSwapTokensAndRepay/__tests__/index.spec.tsx

Lines changed: 36 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -12,26 +12,26 @@ import fakeAccountAddress, {
1212
} from '__mocks__/models/address';
1313
import { bnb, xvs } from '__mocks__/models/tokens';
1414
import { vBnb } from '__mocks__/models/vTokens';
15+
import type { SwapQuote } from 'types';
1516

1617
vi.mock('libs/contracts');
1718
vi.mock('utilities/generateTransactionDeadline');
1819

1920
const fakeAmountMantissa = new BigNumber('10000000000000000');
2021

21-
const fakeSwap = {
22-
direction: 'exactAmountIn' as const,
22+
const fakeSwapQuote: SwapQuote = {
23+
direction: 'exact-in' as const,
2324
fromToken: xvs,
2425
toToken: bnb,
25-
fromTokenAmountSoldMantissa: fakeAmountMantissa,
26-
minimumToTokenAmountReceivedMantissa: fakeAmountMantissa,
27-
expectedToTokenAmountReceivedMantissa: fakeAmountMantissa,
28-
exchangeRate: new BigNumber('1'),
26+
fromTokenAmountSoldMantissa: BigInt(fakeAmountMantissa.toFixed()),
27+
minimumToTokenAmountReceivedMantissa: BigInt(fakeAmountMantissa.toFixed()),
28+
expectedToTokenAmountReceivedMantissa: BigInt(fakeAmountMantissa.toFixed()),
2929
priceImpactPercentage: 0,
30-
routePath: [xvs.address, bnb.address],
30+
callData: '0x',
3131
};
3232

3333
const fakeInput = {
34-
swap: fakeSwap,
34+
swapQuote: fakeSwapQuote,
3535
vToken: vBnb,
3636
repayFullLoan: false,
3737
poolComptrollerContractAddress: fakePoolComptrollerContractAddress,
@@ -72,17 +72,15 @@ describe('useSwapTokensAndRepay', () => {
7272
`
7373
{
7474
"abi": Any<Array>,
75-
"address": "0xfakeSwapRouterContractAddress",
75+
"address": "0xfakeSwapRouterV2ContractAddress",
7676
"args": [
77+
"${vBnb.address}",
78+
"${xvs.address}",
7779
10000000000000000n,
7880
10000000000000000n,
79-
[
80-
"0xB9e0E753630434d7863528cc73CB7AC638a7c8ff",
81-
"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
82-
],
83-
1747386407n,
81+
"0x",
8482
],
85-
"functionName": "swapExactTokensForBNBAndRepay",
83+
"functionName": "swapAndRepay",
8684
}
8785
`,
8886
);
@@ -94,7 +92,6 @@ describe('useSwapTokensAndRepay', () => {
9492
[
9593
"Tokens swapped and repaid",
9694
{
97-
"exchangeRate": 1,
9895
"fromTokenAmountTokens": 0.01,
9996
"fromTokenSymbol": "XVS",
10097
"poolName": "Fake Pool",
@@ -118,12 +115,12 @@ describe('useSwapTokensAndRepay', () => {
118115
const repayFullLoanInput = {
119116
...fakeInput,
120117
repayFullLoan: true,
121-
swap: {
122-
...fakeSwap,
123-
direction: 'exactAmountOut' as const,
124-
toTokenAmountReceivedMantissa: fakeAmountMantissa,
125-
maximumFromTokenAmountSoldMantissa: fakeAmountMantissa,
126-
expectedFromTokenAmountSoldMantissa: fakeAmountMantissa,
118+
swapQuote: {
119+
...fakeSwapQuote,
120+
direction: 'exact-out' as const,
121+
toTokenAmountReceivedMantissa: BigInt(fakeAmountMantissa.toFixed()),
122+
maximumFromTokenAmountSoldMantissa: BigInt(fakeAmountMantissa.toFixed()),
123+
expectedFromTokenAmountSoldMantissa: BigInt(fakeAmountMantissa.toFixed()),
127124
},
128125
};
129126

@@ -142,16 +139,14 @@ describe('useSwapTokensAndRepay', () => {
142139
`
143140
{
144141
"abi": Any<Array>,
145-
"address": "0xfakeSwapRouterContractAddress",
142+
"address": "0xfakeSwapRouterV2ContractAddress",
146143
"args": [
144+
"${repayFullLoanInput.vToken.address}",
145+
"${repayFullLoanInput.swapQuote.fromToken.address}",
147146
10000000000000000n,
148-
[
149-
"0xB9e0E753630434d7863528cc73CB7AC638a7c8ff",
150-
"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
151-
],
152-
1747386407n,
147+
"0x",
153148
],
154-
"functionName": "swapTokensForFullBNBDebtAndRepay",
149+
"functionName": "swapAndRepayFull",
155150
}
156151
`,
157152
);
@@ -163,7 +158,6 @@ describe('useSwapTokensAndRepay', () => {
163158
[
164159
"Tokens swapped and repaid",
165160
{
166-
"exchangeRate": 1,
167161
"fromTokenAmountTokens": 0.01,
168162
"fromTokenSymbol": "XVS",
169163
"poolName": "Fake Pool",
@@ -186,12 +180,15 @@ describe('useSwapTokensAndRepay', () => {
186180

187181
const swapBnbInput = {
188182
...fakeInput,
189-
swap: {
190-
...fakeSwap,
191-
fromToken: bnb,
183+
swapQuote: {
184+
...fakeSwapQuote,
185+
fromToken: {
186+
...bnb,
187+
tokenWrapped: bnb,
188+
},
192189
toToken: xvs,
193-
fromTokenAmountSoldMantissa: fakeAmountMantissa,
194-
minimumToTokenAmountReceivedMantissa: fakeAmountMantissa,
190+
fromTokenAmountSoldMantissa: BigInt(fakeAmountMantissa.toFixed()),
191+
minimumToTokenAmountReceivedMantissa: BigInt(fakeAmountMantissa.toFixed()),
195192
},
196193
};
197194

@@ -210,17 +207,13 @@ describe('useSwapTokensAndRepay', () => {
210207
`
211208
{
212209
"abi": Any<Array>,
213-
"address": "0xfakeSwapRouterContractAddress",
210+
"address": "0xfakeSwapRouterV2ContractAddress",
214211
"args": [
215-
"0x2E7222e51c0f6e98610A1543Aa3836E092CDe62c",
212+
"${swapBnbInput.vToken.address}",
216213
10000000000000000n,
217-
[
218-
"0xB9e0E753630434d7863528cc73CB7AC638a7c8ff",
219-
"0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
220-
],
221-
1747386407n,
214+
"0x",
222215
],
223-
"functionName": "swapBNBForExactTokensAndRepay",
216+
"functionName": "swapNativeAndRepay",
224217
"value": 10000000000000000n,
225218
}
226219
`,
@@ -233,7 +226,6 @@ describe('useSwapTokensAndRepay', () => {
233226
[
234227
"Tokens swapped and repaid",
235228
{
236-
"exchangeRate": 1,
237229
"fromTokenAmountTokens": 0.01,
238230
"fromTokenSymbol": "XVS",
239231
"poolName": "Fake Pool",

apps/evm/src/clients/api/mutations/useSwapTokensAndRepay/index.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,11 @@ export const useSwapTokensAndRepay = (options?: Partial<Options>) => {
4141
});
4242
}
4343

44-
45-
4644
// 2. Repay full loan in BNBs using tokens
4745
if (
4846
repayFullLoan &&
4947
swapQuote.direction === 'exact-out' &&
50-
vToken.symbol === 'vBNB' &&
48+
vToken.symbol === 'vBNB' &&
5149
!swapQuote.fromToken.tokenWrapped?.isNative &&
5250
swapQuote.toToken.tokenWrapped?.isNative
5351
) {
@@ -70,12 +68,10 @@ export const useSwapTokensAndRepay = (options?: Partial<Options>) => {
7068
>;
7169
}
7270

73-
74-
7571
// 6. Sell fromTokens to repay as many BNBs as possible → repay max BNBs
7672
if (
7773
swapQuote.direction === 'exact-in' &&
78-
vToken.symbol === 'vBNB' &&
74+
vToken.symbol === 'vBNB' &&
7975
!swapQuote.fromToken.isNative &&
8076
swapQuote.toToken.isNative
8177
) {

apps/evm/src/clients/api/mutations/useSwapTokensAndSupply/__tests__/index.spec.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,7 @@ const mockSwap = {
2323
toToken: usdc,
2424
fromTokenAmountSoldMantissa: new BigNumber(1000),
2525
minimumToTokenAmountReceivedMantissa: new BigNumber(900),
26-
routePath: ['0xdef' as Address, '0xghi' as Address],
2726
priceImpactPercentage: 0.1,
28-
exchangeRate: new BigNumber(1),
2927
expectedToTokenAmountReceivedMantissa: new BigNumber(1000),
3028
};
3129

apps/evm/src/pages/Market/OperationForm/Repay/RepayWithWalletBalanceForm/__tests__/__snapshots__/indexIntegratedSwap.spec.tsx.snap

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,33 @@
22

33
exports[`RepayWithWalletBalanceForm - Feature flag enabled: integratedSwap > displays correct swap details 1`] = `"You will repay≈ 999.999999 XVSSlippage tolerance0.5%Price impact< 0.01%"`;
44

5-
exports[`RepayWithWalletBalanceForm - Feature flag enabled: integratedSwap > displays correct swap details 2`] = `"You will repay 999.999999 XVS using 299.99K BUSD"`;
6-
75
exports[`RepayWithWalletBalanceForm - Feature flag enabled: integratedSwap > lets user swap and repay full loan 1`] = `
86
[
97
{
108
"poolComptrollerContractAddress": "0x94d1820b2d1c7c7452a163983dc888cec546b77d",
119
"poolName": "Venus",
1210
"repayFullLoan": true,
13-
"swap": {
14-
"direction": "exactAmountOut",
15-
"exchangeRate": "0.00333333333333333333",
16-
"expectedFromTokenAmountSoldMantissa": "3e+23",
11+
"swapQuote": {
12+
"callData": "0x",
13+
"direction": "exact-out",
14+
"expectedFromTokenAmountSoldMantissa": 300000000000000000000000n,
1715
"fromToken": {
1816
"address": "0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
1917
"chainId": 97,
2018
"decimals": 18,
2119
"iconSrc": "fake-busd-asset",
2220
"symbol": "BUSD",
2321
},
24-
"maximumFromTokenAmountSoldMantissa": "3e+23",
22+
"maximumFromTokenAmountSoldMantissa": 300000000000000000000000n,
2523
"priceImpactPercentage": 0.001,
26-
"routePath": [
27-
"0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
28-
"0xB9e0E753630434d7863528cc73CB7AC638a7c8ff",
29-
],
3024
"toToken": {
3125
"address": "0xB9e0E753630434d7863528cc73CB7AC638a7c8ff",
3226
"chainId": 97,
3327
"decimals": 18,
3428
"iconSrc": "fake-xvs-asset",
3529
"symbol": "XVS",
3630
},
37-
"toTokenAmountReceivedMantissa": "1e+21",
31+
"toTokenAmountReceivedMantissa": 1000000000000000000000n,
3832
},
3933
"vToken": {
4034
"address": "0x6d6F697e34145Bb95c54E77482d97cc261Dc237E",
@@ -59,24 +53,20 @@ exports[`RepayWithWalletBalanceForm - Feature flag enabled: integratedSwap > let
5953
"poolComptrollerContractAddress": "0x94d1820b2d1c7c7452a163983dc888cec546b77d",
6054
"poolName": "Venus",
6155
"repayFullLoan": false,
62-
"swap": {
63-
"direction": "exactAmountIn",
64-
"exchangeRate": "0.00333333333333333333",
65-
"expectedToTokenAmountReceivedMantissa": "999999999999999999900",
56+
"swapQuote": {
57+
"callData": "0x",
58+
"direction": "exact-in",
59+
"expectedToTokenAmountReceivedMantissa": 999999999999999999900n,
6660
"fromToken": {
6761
"address": "0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
6862
"chainId": 97,
6963
"decimals": 18,
7064
"iconSrc": "fake-busd-asset",
7165
"symbol": "BUSD",
7266
},
73-
"fromTokenAmountSoldMantissa": "2.999999999999999999999e+23",
74-
"minimumToTokenAmountReceivedMantissa": "999999999999999999900",
67+
"fromTokenAmountSoldMantissa": 299999999999999999999900n,
68+
"minimumToTokenAmountReceivedMantissa": 999999999999999999900n,
7569
"priceImpactPercentage": 0.001,
76-
"routePath": [
77-
"0x8301F2213c0eeD49a7E28Ae4c3e91722919B8B47",
78-
"0xB9e0E753630434d7863528cc73CB7AC638a7c8ff",
79-
],
8070
"toToken": {
8171
"address": "0xB9e0E753630434d7863528cc73CB7AC638a7c8ff",
8272
"chainId": 97,

0 commit comments

Comments
 (0)