mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
Merge branch 'fix/46' into 'master'
Resolve "improve test coverage of the AddressesProviderRegistry" Closes #46 See merge request aave-tech/protocol-v2!55
This commit is contained in:
commit
8901646f3c
1
coverage.json
Normal file
1
coverage.json
Normal file
File diff suppressed because one or more lines are too long
|
@ -317,6 +317,15 @@ export const getLendingPoolAddressesProvider = async (address?: tEthereumAddress
|
|||
);
|
||||
};
|
||||
|
||||
export const getLendingPoolAddressesProviderRegistry = async (address?: tEthereumAddress) => {
|
||||
return await getContract<LendingPoolAddressesProviderRegistry>(
|
||||
eContractid.LendingPoolAddressesProviderRegistry,
|
||||
address ||
|
||||
(await getDb().get(`${eContractid.LendingPoolAddressesProviderRegistry}.${BRE.network.name}`).value())
|
||||
.address
|
||||
);
|
||||
};
|
||||
|
||||
export const getLendingPoolConfiguratorProxy = async (address?: tEthereumAddress) => {
|
||||
return await getContract<LendingPoolConfigurator>(
|
||||
eContractid.LendingPoolConfigurator,
|
||||
|
|
|
@ -363,7 +363,7 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => {
|
|||
|
||||
const addressesProviderRegistry = await deployLendingPoolAddressesProviderRegistry();
|
||||
await waitForTx(
|
||||
await addressesProviderRegistry.registerAddressesProvider(addressesProvider.address, 0)
|
||||
await addressesProviderRegistry.registerAddressesProvider(addressesProvider.address, 1)
|
||||
);
|
||||
|
||||
const lendingPoolImpl = await deployLendingPool();
|
||||
|
|
93
test/addresses-provider-registry.spec.ts
Normal file
93
test/addresses-provider-registry.spec.ts
Normal file
|
@ -0,0 +1,93 @@
|
|||
import {TestEnv, makeSuite} from './helpers/make-suite';
|
||||
import {RAY, APPROVAL_AMOUNT_LENDING_POOL, ZERO_ADDRESS} from '../helpers/constants';
|
||||
import {convertToCurrencyDecimals} from '../helpers/contracts-helpers';
|
||||
import {ProtocolErrors} from '../helpers/types';
|
||||
|
||||
const {expect} = require('chai');
|
||||
|
||||
makeSuite('AddressesProviderRegistry', (testEnv: TestEnv) => {
|
||||
|
||||
it('Checks the addresses provider is added to the registry', async () => {
|
||||
|
||||
const {addressesProvider, registry} = testEnv;
|
||||
|
||||
const providers = await registry.getAddressesProvidersList();
|
||||
|
||||
expect(providers.length).to.be.equal(1, "Invalid length of the addresses providers list");
|
||||
expect(providers[0].toString()).to.be.equal(addressesProvider.address, " Invalid addresses provider added to the list");
|
||||
|
||||
});
|
||||
|
||||
|
||||
it('Registers a new mock addresses provider', async () => {
|
||||
|
||||
const {users, registry} = testEnv;
|
||||
|
||||
//simulating an addresses provider using the users[1] wallet address
|
||||
await registry.registerAddressesProvider(users[1].address, "2");
|
||||
|
||||
const providers = await registry.getAddressesProvidersList();
|
||||
|
||||
expect(providers.length).to.be.equal(2, "Invalid length of the addresses providers list");
|
||||
expect(providers[1].toString()).to.be.equal(users[1].address, " Invalid addresses provider added to the list");
|
||||
|
||||
});
|
||||
|
||||
it('Removes the mock addresses provider', async () => {
|
||||
|
||||
const {users, registry, addressesProvider} = testEnv;
|
||||
|
||||
//checking the isAddressesProviderRegistered function
|
||||
const id = await registry.isAddressesProviderRegistered(users[1].address);
|
||||
|
||||
expect(id).to.be.equal("2", "Invalid isRegistered return value");
|
||||
|
||||
await registry.unregisterAddressesProvider(users[1].address);
|
||||
|
||||
const providers = await registry.getAddressesProvidersList();
|
||||
|
||||
expect(providers.length).to.be.equal(2, "Invalid length of the addresses providers list");
|
||||
expect(providers[0].toString()).to.be.equal(addressesProvider.address, " Invalid addresses provider added to the list");
|
||||
expect(providers[1].toString()).to.be.equal(ZERO_ADDRESS, " Invalid addresses");
|
||||
|
||||
});
|
||||
|
||||
it('Tries to remove a unregistered addressesProvider', async () => {
|
||||
|
||||
const {PROVIDER_NOT_REGISTERED} = ProtocolErrors;
|
||||
|
||||
const {users, registry} = testEnv;
|
||||
|
||||
await expect(registry.unregisterAddressesProvider(users[2].address)).to.be.revertedWith(PROVIDER_NOT_REGISTERED);
|
||||
|
||||
});
|
||||
|
||||
it('Tries to remove a unregistered addressesProvider', async () => {
|
||||
|
||||
const {PROVIDER_NOT_REGISTERED} = ProtocolErrors;
|
||||
|
||||
const {users, registry} = testEnv;
|
||||
|
||||
await expect(registry.unregisterAddressesProvider(users[2].address)).to.be.revertedWith(PROVIDER_NOT_REGISTERED);
|
||||
|
||||
});
|
||||
|
||||
it('Tries to add an already added addressesProvider with a different id. Should overwrite the previous id', async () => {
|
||||
|
||||
const {users, registry, addressesProvider} = testEnv;
|
||||
|
||||
await registry.registerAddressesProvider(addressesProvider.address,"2");
|
||||
|
||||
const providers = await registry.getAddressesProvidersList();
|
||||
|
||||
const id = await registry.isAddressesProviderRegistered(addressesProvider.address);
|
||||
|
||||
expect(providers.length).to.be.equal(2, "Invalid length of the addresses providers list");
|
||||
|
||||
expect(providers[0].toString()).to.be.equal(addressesProvider.address, " Invalid addresses provider added to the list");
|
||||
expect(providers[1].toString()).to.be.equal(ZERO_ADDRESS, " Invalid addresses");
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
|
@ -9,7 +9,7 @@ import {
|
|||
getMintableErc20,
|
||||
getLendingPoolConfiguratorProxy,
|
||||
getPriceOracle,
|
||||
getMockSwapAdapter,
|
||||
getMockSwapAdapter, getLendingPoolAddressesProviderRegistry
|
||||
} from '../../helpers/contracts-helpers';
|
||||
import {tEthereumAddress} from '../../helpers/types';
|
||||
import {LendingPool} from '../../types/LendingPool';
|
||||
|
@ -25,6 +25,7 @@ import {almostEqual} from './almost-equal';
|
|||
import {PriceOracle} from '../../types/PriceOracle';
|
||||
import {LendingPoolAddressesProvider} from '../../types/LendingPoolAddressesProvider';
|
||||
import { MockSwapAdapter } from '../../types/MockSwapAdapter';
|
||||
import { LendingPoolAddressesProviderRegistry } from '../../types/LendingPoolAddressesProviderRegistry';
|
||||
chai.use(bignumberChai());
|
||||
chai.use(almostEqual());
|
||||
|
||||
|
@ -47,6 +48,7 @@ export interface TestEnv {
|
|||
lend: MintableErc20;
|
||||
addressesProvider: LendingPoolAddressesProvider;
|
||||
mockSwapAdapter: MockSwapAdapter;
|
||||
registry: LendingPoolAddressesProviderRegistry;
|
||||
}
|
||||
|
||||
let buidlerevmSnapshotId: string = '0x1';
|
||||
|
@ -70,7 +72,8 @@ const testEnv: TestEnv = {
|
|||
usdc: {} as MintableErc20,
|
||||
lend: {} as MintableErc20,
|
||||
addressesProvider: {} as LendingPoolAddressesProvider,
|
||||
mockSwapAdapter: {} as MockSwapAdapter
|
||||
mockSwapAdapter: {} as MockSwapAdapter,
|
||||
registry: {} as LendingPoolAddressesProviderRegistry
|
||||
} as TestEnv;
|
||||
|
||||
export async function initializeMakeSuite() {
|
||||
|
@ -95,6 +98,7 @@ export async function initializeMakeSuite() {
|
|||
|
||||
testEnv.oracle = await getPriceOracle();
|
||||
testEnv.addressesProvider = await getLendingPoolAddressesProvider();
|
||||
testEnv.registry = await getLendingPoolAddressesProviderRegistry();
|
||||
|
||||
testEnv.helpersContract = await getAaveProtocolTestHelpers();
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user