Skip to content

Commit

Permalink
fix: dashboard tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Jeday committed Jan 28, 2025
1 parent 4ff312b commit 34d4519
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,4 @@ contract StETHPermit__HarnessForDashboard is StETHPermit {
function mock__setTotalShares(uint256 _totalShares) external {
totalShares = _totalShares;
}

function mock__getTotalShares() external view returns (uint256) {
return _getTotalShares();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,18 @@ contract VaultFactory__MockForDashboard is UpgradeableBeacon {
bytes memory immutableArgs = abi.encode(vault);
dashboard = Dashboard(payable(Clones.cloneWithImmutableArgs(dashboardImpl, immutableArgs)));

dashboard.initialize(msg.sender);
dashboard.initialize(address(this));
dashboard.grantRole(dashboard.DEFAULT_ADMIN_ROLE(), msg.sender);
dashboard.grantRole(dashboard.FUND_ROLE(), msg.sender);
dashboard.grantRole(dashboard.WITHDRAW_ROLE(), msg.sender);
dashboard.grantRole(dashboard.MINT_ROLE(), msg.sender);
dashboard.grantRole(dashboard.BURN_ROLE(), msg.sender);
dashboard.grantRole(dashboard.REBALANCE_ROLE(), msg.sender);
dashboard.grantRole(dashboard.PAUSE_BEACON_CHAIN_DEPOSITS_ROLE(), msg.sender);
dashboard.grantRole(dashboard.RESUME_BEACON_CHAIN_DEPOSITS_ROLE(), msg.sender);
dashboard.grantRole(dashboard.REQUEST_VALIDATOR_EXIT_ROLE(), msg.sender);
dashboard.grantRole(dashboard.VOLUNTARY_DISCONNECT_ROLE(), msg.sender);

dashboard.revokeRole(dashboard.DEFAULT_ADMIN_ROLE(), address(this));

vault.initialize(address(dashboard), _operator, "");
Expand Down
40 changes: 31 additions & 9 deletions test/0.8.25/vaults/dashboard/dashboard.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ import { certainAddress, days, ether, findEvents, signPermit, stethDomain, wstet
import { deployLidoLocator } from "test/deploy";
import { Snapshot } from "test/suite";

describe.skip("Dashboard.sol", () => {
describe("Dashboard.sol", () => {
let factoryOwner: HardhatEthersSigner;
let vaultOwner: HardhatEthersSigner;
let nodeOperator: HardhatEthersSigner;
Expand Down Expand Up @@ -458,9 +458,10 @@ describe.skip("Dashboard.sol", () => {

context("transferStVaultOwnership", () => {
it("reverts if called by a non-admin", async () => {
await expect(dashboard.connect(stranger).transferStakingVaultOwnership(vaultOwner))
.to.be.revertedWithCustomError(dashboard, "AccessControlUnauthorizedAccount")
.withArgs(stranger, await dashboard.DEFAULT_ADMIN_ROLE());
await expect(dashboard.connect(stranger).transferStakingVaultOwnership(vaultOwner)).to.be.revertedWithCustomError(
dashboard,
"NotACommitteeMember",
);
});

it("assigns a new owner to the staking vault", async () => {
Expand All @@ -476,7 +477,7 @@ describe.skip("Dashboard.sol", () => {
it("reverts if called by a non-admin", async () => {
await expect(dashboard.connect(stranger).voluntaryDisconnect())
.to.be.revertedWithCustomError(dashboard, "AccessControlUnauthorizedAccount")
.withArgs(stranger, await dashboard.DEFAULT_ADMIN_ROLE());
.withArgs(stranger, await dashboard.VOLUNTARY_DISCONNECT_ROLE());
});

context("when vault has no debt", () => {
Expand Down Expand Up @@ -537,6 +538,9 @@ describe.skip("Dashboard.sol", () => {
});

it("reverts if called by a non-admin", async () => {
const strangerWeth = weth.connect(stranger);
await strangerWeth.deposit({ value: amount });
await strangerWeth.approve(dashboard, amount);
await expect(dashboard.connect(stranger).fundWeth(ether("1"))).to.be.revertedWithCustomError(
dashboard,
"AccessControlUnauthorizedAccount",
Expand Down Expand Up @@ -744,7 +748,12 @@ describe.skip("Dashboard.sol", () => {

context("burnShares", () => {
it("reverts if called by a non-admin", async () => {
await expect(dashboard.connect(stranger).burnShares(ether("1"))).to.be.revertedWithCustomError(
const amountShares = ether("1");
const amountSteth = await steth.getPooledEthByShares(amountShares);
await steth.mintExternalShares(stranger, amountShares);
await steth.connect(stranger).approve(dashboard, amountSteth);

await expect(dashboard.connect(stranger).burnShares(amountShares)).to.be.revertedWithCustomError(
dashboard,
"AccessControlUnauthorizedAccount",
);
Expand Down Expand Up @@ -782,6 +791,9 @@ describe.skip("Dashboard.sol", () => {
});

it("reverts if called by a non-admin", async () => {
await steth.mintExternalShares(stranger, amountShares);
await steth.connect(stranger).approve(dashboard, amountSteth);

await expect(dashboard.connect(stranger).burnSteth(amountSteth)).to.be.revertedWithCustomError(
dashboard,
"AccessControlUnauthorizedAccount",
Expand Down Expand Up @@ -820,6 +832,14 @@ describe.skip("Dashboard.sol", () => {
});

it("reverts if called by a non-admin", async () => {
// get steth
await steth.mintExternalShares(stranger, amountWsteth + 1000n);
const amountSteth = await steth.getPooledEthByShares(amountWsteth);
// get wsteth
await steth.connect(stranger).approve(wsteth, amountSteth);
await wsteth.connect(stranger).wrap(amountSteth);
// burn
await wsteth.connect(stranger).approve(dashboard, amountWsteth);
await expect(dashboard.connect(stranger).burnWstETH(amountWsteth)).to.be.revertedWithCustomError(
dashboard,
"AccessControlUnauthorizedAccount",
Expand Down Expand Up @@ -1138,15 +1158,17 @@ describe.skip("Dashboard.sol", () => {
});

it("reverts if called by a non-admin", async () => {
await steth.mintExternalShares(stranger, amountShares);

const permit = {
owner: vaultOwner.address,
owner: stranger.address,
spender: dashboardAddress,
value: amountSteth,
nonce: await steth.nonces(vaultOwner),
nonce: await steth.nonces(stranger),
deadline: BigInt(await time.latest()) + days(1n),
};

const signature = await signPermit(await stethDomain(steth), permit, vaultOwner);
const signature = await signPermit(await stethDomain(steth), permit, stranger);
const { deadline, value } = permit;
const { v, r, s } = signature;

Expand Down
2 changes: 1 addition & 1 deletion test/0.8.25/vaults/delegation/delegation.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ describe("Delegation.sol", () => {
it("reverts if wETH is zero address", async () => {
await expect(ethers.deployContract("Delegation", [ethers.ZeroAddress, lidoLocator]))
.to.be.revertedWithCustomError(delegation, "ZeroArgument")
.withArgs("_wETH");
.withArgs("_WETH");
});

it("sets the stETH address", async () => {
Expand Down

0 comments on commit 34d4519

Please sign in to comment.