From 725d380547d2577ce67886ce1c59bb97f2cc533c Mon Sep 17 00:00:00 2001 From: r4bbit <445106+0x-r4bbit@users.noreply.github.com> Date: Tue, 10 Oct 2023 13:53:03 +0200 Subject: [PATCH] test(StakeManager): expand on deployment test (#27) Added some additional assertions related to access control and exposed properties. --- .gas-snapshot | 1 + script/Deploy.s.sol | 2 +- script/DeploymentConfig.s.sol | 2 +- test/StakeManager.t.sol | 13 ++++++++++--- 4 files changed, 13 insertions(+), 5 deletions(-) create mode 100644 .gas-snapshot diff --git a/.gas-snapshot b/.gas-snapshot new file mode 100644 index 0000000..22a3aff --- /dev/null +++ b/.gas-snapshot @@ -0,0 +1 @@ +StakeManagerTest:testDeployment() (gas: 26172) \ No newline at end of file diff --git a/script/Deploy.s.sol b/script/Deploy.s.sol index 5ceca29..6f4c810 100644 --- a/script/Deploy.s.sol +++ b/script/Deploy.s.sol @@ -8,7 +8,7 @@ import { StakeManager } from "../contracts/StakeManager.sol"; contract Deploy is BaseScript { function run() public returns (StakeManager, DeploymentConfig) { DeploymentConfig deploymentConfig = new DeploymentConfig(broadcaster); - (address token,) = deploymentConfig.activeNetworkConfig(); + (, address token) = deploymentConfig.activeNetworkConfig(); vm.startBroadcast(broadcaster); StakeManager stakeManager = new StakeManager(token, address(0)); diff --git a/script/DeploymentConfig.s.sol b/script/DeploymentConfig.s.sol index 2a289ee..68a22f2 100644 --- a/script/DeploymentConfig.s.sol +++ b/script/DeploymentConfig.s.sol @@ -29,7 +29,7 @@ contract DeploymentConfig is Script { } function getOrCreateAnvilEthConfig(address _deployer) public returns (NetworkConfig memory) { - vm.startBroadcast(); + vm.startBroadcast(_deployer); MockERC20 token = new MockERC20(); vm.stopBroadcast(); return NetworkConfig({ token: address(token), deployer: _deployer }); diff --git a/test/StakeManager.t.sol b/test/StakeManager.t.sol index 1aa3909..d2a866f 100644 --- a/test/StakeManager.t.sol +++ b/test/StakeManager.t.sol @@ -7,19 +7,26 @@ import { DeploymentConfig } from "../script/DeploymentConfig.s.sol"; import { StakeManager } from "../contracts/StakeManager.sol"; contract StakeManagerTest is Test { - address internal deployer; - DeploymentConfig internal deploymentConfig; StakeManager internal stakeManager; + address internal stakeToken; + address internal deployer; + function setUp() public virtual { Deploy deployment = new Deploy(); (stakeManager, deploymentConfig) = deployment.run(); - (deployer,) = deploymentConfig.activeNetworkConfig(); + (deployer, stakeToken) = deploymentConfig.activeNetworkConfig(); } function testDeployment() public { assertEq(stakeManager.owner(), deployer); + assertEq(stakeManager.currentEpoch(), 0); + assertEq(stakeManager.pendingReward(), 0); + assertEq(stakeManager.multiplierSupply(), 0); + assertEq(stakeManager.stakeSupply(), 0); + assertEq(address(stakeManager.stakedToken()), stakeToken); + assertEq(address(stakeManager.oldManager()), address(0)); assertEq(stakeManager.totalSupply(), 0); } }