vDODO test frameWork update
This commit is contained in:
@@ -72,10 +72,13 @@ export class VDODOContext {
|
||||
[this.DODOApprove.options.address]
|
||||
)
|
||||
|
||||
|
||||
this.Governance = await contracts.newContract(
|
||||
contracts.DODO_GOVERNANCE
|
||||
contracts.DODO_GOVERNANCE,
|
||||
[
|
||||
this.DODO.options.address
|
||||
]
|
||||
)
|
||||
|
||||
this.VDODO = await contracts.newContract(
|
||||
contracts.VDODO_NAME,
|
||||
[
|
||||
@@ -91,23 +94,20 @@ export class VDODOContext {
|
||||
this.Deployer
|
||||
).send(this.sendParam(this.Deployer))
|
||||
|
||||
await this.Governance.methods.setVDODOAddress(
|
||||
this.VDODO.options.address
|
||||
).send(this.sendParam(this.Deployer))
|
||||
|
||||
await this.DODOApprove.methods.init(this.Deployer,this.DODOApproveProxy.options.address).send(this.sendParam(this.Deployer));
|
||||
await this.DODOApproveProxy.methods.init(this.Deployer, [this.VDODO.options.address]).send(this.sendParam(this.Deployer));
|
||||
|
||||
|
||||
|
||||
|
||||
await this.VDODO.methods.initOwner(
|
||||
this.Deployer
|
||||
).send(this.sendParam(this.Deployer))
|
||||
|
||||
await this.VDODO.methods.changePerReward(decimalStr("1")).send(this.sendParam(this.Deployer));
|
||||
await this.mintTestToken(this.VDODO.options.address, decimalStr("100000"));
|
||||
|
||||
this.alpha = await this.VDODO.methods.alpha().call();
|
||||
this.lastRewardBlock = await this.VDODO.methods.lastRewardBlock().call();
|
||||
|
||||
|
||||
console.log(log.blueText("[Init VDODO context]"));
|
||||
|
||||
console.log("init alpha = " + this.alpha);
|
||||
@@ -126,13 +126,11 @@ export class VDODOContext {
|
||||
async mintTestToken(to: string, amount: string) {
|
||||
await this.DODO.methods.mint(to, amount).send(this.sendParam(this.Deployer));
|
||||
}
|
||||
|
||||
async approveProxy(account: string) {
|
||||
await this.DODO.methods
|
||||
.approve(this.DODOApprove.options.address, MAX_UINT256)
|
||||
.send(this.sendParam(account));
|
||||
await this.VDODO.methods
|
||||
.approve(this.DODOApprove.options.address, MAX_UINT256)
|
||||
.send(this.sendParam(account));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
68
test/vDODO/erc20.test.ts
Normal file
68
test/vDODO/erc20.test.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
/*
|
||||
|
||||
Copyright 2021 DODO ZOO.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
*/
|
||||
|
||||
import { decimalStr, MAX_UINT256 } from '../utils/Converter';
|
||||
import { logGas } from '../utils/Log';
|
||||
import { VDODOContext, getVDODOContext } from '../utils/VDODOContext';
|
||||
import { assert } from 'chai';
|
||||
import BigNumber from 'bignumber.js';
|
||||
|
||||
let account0: string;
|
||||
let account1: string;
|
||||
|
||||
async function init(ctx: VDODOContext): Promise<void> {
|
||||
account0 = ctx.SpareAccounts[0];
|
||||
account1 = ctx.SpareAccounts[1];
|
||||
|
||||
await ctx.mintTestToken(account0, decimalStr("1000"));
|
||||
await ctx.mintTestToken(account1, decimalStr("1000"));
|
||||
|
||||
await ctx.approveProxy(account0);
|
||||
await ctx.approveProxy(account1);
|
||||
}
|
||||
|
||||
describe("vDODO-erc20", () => {
|
||||
let snapshotId: string;
|
||||
let ctx: VDODOContext;
|
||||
|
||||
before(async () => {
|
||||
ctx = await getVDODOContext();
|
||||
//打开transfer开关
|
||||
await init(ctx);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
snapshotId = await ctx.EVM.snapshot();
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await ctx.EVM.reset(snapshotId);
|
||||
});
|
||||
|
||||
describe("vdodo-erc20", () => {
|
||||
|
||||
it("transfer-vdodo", async () => {
|
||||
//检查四个人 【包括from, to 以及各自的上级】,info变化
|
||||
//alpha lastRewardBlock
|
||||
//各自dodo余额变化
|
||||
});
|
||||
|
||||
it("transferFrom-vdodo", async () => {
|
||||
//检查四个人 【包括from, to 以及各自的上级】,info变化
|
||||
//alpha lastRewardBlock
|
||||
//各自dodo余额变化
|
||||
//approve 状态变化
|
||||
|
||||
|
||||
//再次transferFrom 预期revert
|
||||
});
|
||||
|
||||
it("transfer - close", async () => {
|
||||
//预期revert
|
||||
});
|
||||
})
|
||||
});
|
||||
64
test/vDODO/global.test.ts
Normal file
64
test/vDODO/global.test.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
|
||||
Copyright 2021 DODO ZOO.
|
||||
SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
*/
|
||||
|
||||
import { decimalStr, MAX_UINT256 } from '../utils/Converter';
|
||||
import { logGas } from '../utils/Log';
|
||||
import { VDODOContext, getVDODOContext } from '../utils/VDODOContext';
|
||||
import { assert } from 'chai';
|
||||
import BigNumber from 'bignumber.js';
|
||||
|
||||
let account0: string;
|
||||
let account1: string;
|
||||
|
||||
async function init(ctx: VDODOContext): Promise<void> {
|
||||
account0 = ctx.SpareAccounts[0];
|
||||
account1 = ctx.SpareAccounts[1];
|
||||
|
||||
await ctx.mintTestToken(account0, decimalStr("1000"));
|
||||
await ctx.mintTestToken(account1, decimalStr("1000"));
|
||||
|
||||
await ctx.approveProxy(account0);
|
||||
await ctx.approveProxy(account1);
|
||||
}
|
||||
|
||||
describe("vDODO-owner", () => {
|
||||
let snapshotId: string;
|
||||
let ctx: VDODOContext;
|
||||
|
||||
before(async () => {
|
||||
ctx = await getVDODOContext();
|
||||
await init(ctx);
|
||||
});
|
||||
|
||||
beforeEach(async () => {
|
||||
snapshotId = await ctx.EVM.snapshot();
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await ctx.EVM.reset(snapshotId);
|
||||
});
|
||||
|
||||
describe("vdodo-erc20", () => {
|
||||
|
||||
it("change-reward", async () => {
|
||||
//改变前alpha lastRewardBlock 状态
|
||||
|
||||
//change-reward
|
||||
|
||||
//改变后状态
|
||||
});
|
||||
|
||||
|
||||
it("donate", async () => {
|
||||
//改变前alpha lastRewardBlock 状态
|
||||
|
||||
//change-reward
|
||||
|
||||
//改变后状态
|
||||
});
|
||||
})
|
||||
});
|
||||
@@ -12,25 +12,23 @@ import { logGas } from '../utils/Log';
|
||||
import { VDODOContext, getVDODOContext } from '../utils/VDODOContext';
|
||||
import { assert } from 'chai';
|
||||
import BigNumber from 'bignumber.js';
|
||||
const truffleAssert = require('truffle-assertions');
|
||||
|
||||
let account0: string;
|
||||
let account1: string;
|
||||
let account2: string;
|
||||
|
||||
async function init(ctx: VDODOContext): Promise<void> {
|
||||
account0 = ctx.SpareAccounts[0];
|
||||
account1 = ctx.SpareAccounts[1];
|
||||
account2 = ctx.SpareAccounts[2];
|
||||
|
||||
await ctx.mintTestToken(account0, decimalStr("1000"));
|
||||
await ctx.mintTestToken(account1, decimalStr("1000"));
|
||||
|
||||
await ctx.approveProxy(account0);
|
||||
await ctx.approveProxy(account1);
|
||||
await ctx.approveProxy(account2);
|
||||
}
|
||||
|
||||
//TODO: 抽象出来mint func
|
||||
|
||||
describe("VDODO", () => {
|
||||
let snapshotId: string;
|
||||
let ctx: VDODOContext;
|
||||
@@ -72,6 +70,52 @@ describe("VDODO", () => {
|
||||
decimalStr("0")
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
it("vdodo-mint-first", async () => {
|
||||
//第一次mint 后
|
||||
//alpha lastRewardBlock 状态
|
||||
//user superior info 状态
|
||||
//vDODO 总量变化,以及vDODO合约dodo余额,user dodo余额
|
||||
|
||||
});
|
||||
|
||||
it("vdodo-mint-second", async () => {
|
||||
//第二次mint 后(传入之前的superior地址)
|
||||
//alpha lastRewardBlock 状态
|
||||
//user superior info 状态
|
||||
//vDODO 总量变化,以及vDODO合约dodo余额,user dodo余额
|
||||
});
|
||||
|
||||
|
||||
it("vdodo-mint-second-otherSuperior", async () => {
|
||||
//第二次mint 后(传入非之前superior地址)
|
||||
//alpha lastRewardBlock 状态
|
||||
//user superior info 状态
|
||||
//vDODO 总量变化,以及vDODO合约dodo余额,user dodo余额
|
||||
});
|
||||
|
||||
|
||||
it("redeem-amount-read", async () => {
|
||||
//正确读取 withdrawAmount 字段
|
||||
});
|
||||
|
||||
it("redeem-partial-haveMint", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("redeem-partial-NotMint", async () => {
|
||||
//多个下级引用
|
||||
});
|
||||
|
||||
it("redeem-all-haveMint", async () => {
|
||||
|
||||
});
|
||||
|
||||
it("redeem-all-NoMint", async () => {
|
||||
//多个下级引用
|
||||
});
|
||||
|
||||
// it("vdodo first mint with no superior", async () => {
|
||||
|
||||
// await ctx.VDODO.methods.mint(decimalStr("10"),"0x0000000000000000000000000000000000000000").send(ctx.sendParam(account0))
|
||||
Reference in New Issue
Block a user