-
Notifications
You must be signed in to change notification settings - Fork 15
/
service.test.ts
70 lines (59 loc) · 2.4 KB
/
service.test.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import { Service } from './service';
import * as common from '@protocolink/common';
import { expect } from 'chai';
import { mainnetTokens } from './tokens';
describe('AaveV2 Service', function () {
const chainIds = [common.ChainId.mainnet];
context('Test getReserveTokensAddresses', function () {
chainIds.forEach((chainId) => {
it(common.toNetworkId(chainId), async function () {
const service = new Service(chainId);
const reserveTokensAddresses = await service.getReserveTokensAddresses();
expect(reserveTokensAddresses).to.have.lengthOf.above(0);
});
});
});
context('Test toAToken', function () {
const service = new Service(common.ChainId.mainnet);
const testCases = [
{ asset: mainnetTokens.WETH, expected: mainnetTokens.aWETH },
{ asset: mainnetTokens.USDC, expected: mainnetTokens.aUSDC },
];
testCases.forEach(({ asset, expected }) => {
it(`${asset.symbol} to ${expected.symbol}`, async function () {
const aToken = await service.toAToken(asset);
expect(aToken.toObject()).to.deep.eq(expected.toObject());
});
});
});
context('Test toAsset', function () {
const service = new Service(common.ChainId.mainnet);
const testCases = [
{ aToken: mainnetTokens.aWETH, expected: mainnetTokens.WETH },
{ aToken: mainnetTokens.aUSDC, expected: mainnetTokens.USDC },
];
testCases.forEach(({ aToken, expected }) => {
it(`${aToken.symbol} to ${expected.symbol}`, async function () {
const asset = await service.toAsset(aToken);
expect(asset.toObject()).to.deep.eq(expected.toObject());
});
});
});
context('Test getFlashLoanConfiguration', function () {
const service = new Service(common.ChainId.mainnet);
const testCases = [
{ assets: [mainnetTokens.WETH, mainnetTokens.USDC] },
{ assets: [mainnetTokens.WBTC, mainnetTokens.USDT] },
];
testCases.forEach(({ assets }, i) => {
it(`case ${i + 1}`, async function () {
const flashLoanConfiguration = await service.getFlashLoanConfiguration(assets);
expect(flashLoanConfiguration).to.have.keys('feeBps', 'assetInfos');
expect(flashLoanConfiguration.assetInfos).to.have.lengthOf.above(0);
for (const assetInfo of flashLoanConfiguration.assetInfos) {
expect(assetInfo).to.have.keys('isActive', 'availableToBorrow');
}
});
});
});
});