-
Notifications
You must be signed in to change notification settings - Fork 104
/
Copy pathstkAave-upgrade.test.ts
60 lines (43 loc) · 1.93 KB
/
stkAave-upgrade.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
import hre from 'hardhat';
import { expect } from 'chai';
import { advanceTimeAndBlock } from '../helpers/misc-utils';
import { makeSuite, TestEnv } from './helpers/make-suite';
makeSuite('Check upgraded stkAave', (testEnv: TestEnv) => {
let ethers;
let amountTransferred;
before(async () => {
ethers = hre.ethers;
amountTransferred = ethers.utils.parseUnits('1.0', 18);
});
it('Revision number check', async function () {
const { stakedAave } = testEnv;
const revision = await stakedAave.REVISION();
const expectedRevision = 5;
expect(revision).to.be.equal(expectedRevision);
});
it('GhoDebtToken Address check', async function () {
const { stakedAave, variableDebtToken } = testEnv;
let ghoDebtToken = await stakedAave.ghoDebtToken();
expect(ghoDebtToken).to.be.equal(variableDebtToken.address);
});
it('Users should be able to stake AAVE', async () => {
const { stakedAave, aaveToken, users } = testEnv;
const amount = ethers.utils.parseUnits('1.0', 18);
const approveAmount = ethers.utils.parseUnits('1.0', 18);
await aaveToken.connect(users[2].signer).approve(stakedAave.address, approveAmount);
await expect(stakedAave.connect(users[2].signer).stake(users[2].address, amount))
.to.emit(stakedAave, 'Staked')
.withArgs(users[2].address, users[2].address, amount, amount);
});
it('Users should be able to redeem stkAave', async () => {
const { stakedAave, users } = testEnv;
const amount = ethers.utils.parseUnits('1.0', 18);
await advanceTimeAndBlock(48600);
await stakedAave.connect(users[2].signer).cooldown();
const COOLDOWN_SECONDS = await stakedAave.COOLDOWN_SECONDS();
await advanceTimeAndBlock(Number(COOLDOWN_SECONDS.toString()));
await expect(stakedAave.connect(users[2].signer).redeem(users[2].address, amount))
.to.emit(stakedAave, 'Redeem')
.withArgs(users[2].address, users[2].address, amount, amount);
});
});