@gooddollar/goodprotocol
Version:
GoodDollar Protocol
49 lines (43 loc) • 1.7 kB
text/typescript
import { expect } from "chai";
import { ethers, upgrades } from "hardhat";
import { loadFixture } from "@nomicfoundation/hardhat-network-helpers";
import { createDAO } from "../helpers";
describe("DAOUpgradeableContract", () => {
let signers, avatar, genericCall, controller, nameService;
before(async () => {
signers = await ethers.getSigners();
let {
controller: ctrl,
avatar: av,
genericCall: gc,
nameService: ns
} = await createDAO(); //await loadFixture(createDAO) doesnt work here when other tests use deployMockContract (FuseStaking)
avatar = av;
genericCall = gc;
controller = ctrl;
nameService = ns;
});
it("should be able to authorize upgrade for dao upgradable contract", async () => {
const upgradableMockFactory = await ethers.getContractFactory(
"UpgradableMock3"
);
const daoUpgradableProxy = await upgrades.deployProxy(
upgradableMockFactory,
[],
{ kind: "uups" }
);
const differentUpgradableMock = await (
await ethers.getContractFactory("UpgradableMock4")
).deploy();
const secondContractDecimals = await differentUpgradableMock.decimals();
const decimalsBeforeUpgrade = await daoUpgradableProxy.decimals();
const encodedData = daoUpgradableProxy.interface.encodeFunctionData(
"upgradeTo",
[]
);
await (await genericCall(daoUpgradableProxy.address, encodedData)).wait();
const decimalsAfterUpgrade = await daoUpgradableProxy.decimals();
expect(decimalsBeforeUpgrade).to.not.eq(decimalsAfterUpgrade);
expect(decimalsAfterUpgrade).to.eq(secondContractDecimals);
});
});