add test for check staked cec when deposit

This commit is contained in:
CounterFire2023 2024-08-27 19:24:38 +08:00
parent 1684abb0ab
commit 7dd08188ba

View File

@ -19,6 +19,13 @@ describe("Vester", function () {
await cec.setMinter(owner.address, true);
await esCec.setMinter(owner.address, true);
const RewardDistributor = await hre.ethers.getContractFactory("RewardDistributor");
const RewardTracker = await hre.ethers.getContractFactory("RewardTracker");
const stakedCecTracker = await RewardTracker.deploy("Staked CEC", "sCEC");
const stakedCecDistributor = await RewardDistributor.deploy(esCec.target, stakedCecTracker.target);
await stakedCecTracker.initialize([cec.target, esCec.target], stakedCecDistributor.target);
await stakedCecDistributor.updateLastDistributionTime();
const Vester = await hre.ethers.getContractFactory("Vester");
const vester = await Vester.deploy(
@ -28,26 +35,26 @@ describe("Vester", function () {
esCec.target,
ZeroAddress,
cec.target,
ZeroAddress,
false
stakedCecTracker.target,
true
);
await cec.mint(owner.address, expandDecimals(100000, 18));
await esCec.mint(owner.address, expandDecimals(100000, 18));
return {owner, otherAccount, chainId, cec, esCec, vester};
return {owner, otherAccount, chainId, cec, esCec, vester, stakedCecTracker};
}
describe("Deployment", function () {
it("should deploy Vester", async function () {
const {cec, esCec, vester} = await loadFixture(deployOneContract);
const {cec, esCec, vester, stakedCecTracker} = await loadFixture(deployOneContract);
expect(await vester.name()).eq("Vested CEC");
expect(await vester.symbol()).eq("veCEC");
expect(await vester.vestingDuration()).eq(secondsPerYear);
expect(await vester.esToken()).eq(esCec.target);
expect(await vester.pairToken()).eq(ZeroAddress);
expect(await vester.claimableToken()).eq(cec.target);
expect(await vester.rewardTracker()).eq(ZeroAddress);
expect(await vester.rewardTracker()).eq(stakedCecTracker.target);
expect(await vester.hasPairToken()).eq(false);
expect(await vester.hasRewardTracker()).eq(false);
expect(await vester.hasRewardTracker()).eq(true);
});
it("setCumulativeRewardDeductions", async () => {
@ -74,7 +81,7 @@ describe("Vester", function () {
});
it("deposit, claim, withdraw", async () => {
const {owner, otherAccount, cec, esCec, vester} = await loadFixture(deployOneContract);
const {owner, otherAccount, cec, esCec, vester, stakedCecTracker} = await loadFixture(deployOneContract);
const wallet = owner;
const user0 = otherAccount;
const provider = wallet.provider;
@ -103,6 +110,20 @@ describe("Vester", function () {
await esCec.mint(user0.address, expandDecimals(1000, 18));
await vester.setBonusRewards(user0.address, expandDecimals(10_000, 18));
// @ts-ignore
await expect(vester.connect(user0).deposit(expandDecimals(1000, 18))).to.be.revertedWith(
"Vester: insufficient cec balance",
);
await stakedCecTracker.setHandler(user0.address, true);
await cec.setMinter(wallet.address, true);
await cec.mint(user0.address, expandDecimals(1000, 18));
// @ts-ignore
await cec.connect(user0).approve(stakedCecTracker.target, expandDecimals(1000, 18));
// @ts-ignore
await stakedCecTracker.connect(user0).stakeForAccount(user0.address, user0.address, cec.target, expandDecimals(1000, 18));
// @ts-ignore
await vester.connect(user0).deposit(expandDecimals(1000, 18));