@@ -254,6 +254,20 @@ contract StakingFacetTest is DiamondTestSetup {
254254 assertEq (poolInfo2.lastRewardBlock, 11 );
255255 }
256256
257+ function testStake_ShouldRevert_IfPoolHasZeroAllocationPoints () public {
258+ // admin pool allocation points to 0
259+ vm.startPrank (admin);
260+ stakingFacet.updateStakingPool (
261+ 0 , // pool id
262+ 0 // allocation points
263+ );
264+ vm.stopPrank ();
265+
266+ vm.prank (user);
267+ vm.expectRevert ("Pool disabled " );
268+ stakingFacet.stake (0 , 50 ether);
269+ }
270+
257271 function testStake_ShouldStakeTokens () public {
258272 // user stakes 50 STK
259273 vm.prank (user);
@@ -350,7 +364,7 @@ contract StakingFacetTest is DiamondTestSetup {
350364 * Step 1, admin creates 3 staking pools
351365 * - Pool 1: 100 allocation points
352366 * - Pool 2: 300 allocation points
353- * - Pool 3: 0 allocation points
367+ * - Pool 3: 600 allocation points
354368 *
355369 * Step 2
356370 * - user stakes 50 STK in `Pool 1`
@@ -362,9 +376,9 @@ contract StakingFacetTest is DiamondTestSetup {
362376 * Step 4, users unstake half of the tokens
363377 *
364378 * Step 5, assert that:
365- * - user gets 2.5 reward tokens (25 % pool allocation)
366- * - user2 gets 7.5 reward tokens (75 % pool allocation)
367- * - user3 gets 0 reward tokens (0 % pool allocation)
379+ * - user gets 1 reward token (10 % pool allocation)
380+ * - user2 gets 3 reward tokens (30 % pool allocation)
381+ * - user3 gets 6 reward tokens (60 % pool allocation)
368382 */
369383 function testUnstake_ShouldUnstakeTokens_WhenMultipleUsersUnstakeFromMultiplePools ()
370384 public
@@ -379,7 +393,7 @@ contract StakingFacetTest is DiamondTestSetup {
379393 stakeToken
380394 );
381395 stakingFacet.createStakingPool (
382- 0 , // allocation points
396+ 600 , // allocation points
383397 stakeToken
384398 );
385399 vm.stopPrank ();
@@ -462,29 +476,29 @@ contract StakingFacetTest is DiamondTestSetup {
462476 userInfo = stakingFacet.getStakingUserInfo (0 , user);
463477 poolInfo = stakingFacet.getStakingPoolInfo (0 );
464478 assertEq (poolInfo.lastRewardBlock, 11 );
465- assertEq (rewardToken.balanceOf (user), 2.5 ether);
479+ assertEq (rewardToken.balanceOf (user), 1 ether);
466480 assertEq (userInfo.amount, 25 ether);
467- assertEq (userInfo.rewardDebt, 1.25 ether);
481+ assertEq (userInfo.rewardDebt, 0.5 ether);
468482 assertEq (poolInfo.amount, 25 ether);
469483 assertEq (stakeToken.balanceOf (user), 75 ether);
470484
471485 // after (user2)
472486 userInfo2 = stakingFacet.getStakingUserInfo (1 , user2);
473487 poolInfo2 = stakingFacet.getStakingPoolInfo (1 );
474488 assertEq (poolInfo2.lastRewardBlock, 11 );
475- assertEq (rewardToken.balanceOf (user2), 7.5 ether);
489+ assertEq (rewardToken.balanceOf (user2), 3 ether);
476490 assertEq (userInfo2.amount, 25 ether);
477- assertEq (userInfo2.rewardDebt, 3.75 ether);
491+ assertEq (userInfo2.rewardDebt, 1.5 ether);
478492 assertEq (poolInfo2.amount, 25 ether);
479493 assertEq (stakeToken.balanceOf (user2), 75 ether);
480494
481495 // after (user3)
482496 userInfo3 = stakingFacet.getStakingUserInfo (2 , user3);
483497 poolInfo3 = stakingFacet.getStakingPoolInfo (2 );
484498 assertEq (poolInfo3.lastRewardBlock, 11 );
485- assertEq (rewardToken.balanceOf (user3), 0 );
499+ assertEq (rewardToken.balanceOf (user3), 6 ether );
486500 assertEq (userInfo3.amount, 25 ether);
487- assertEq (userInfo3.rewardDebt, 0 );
501+ assertEq (userInfo3.rewardDebt, 3 ether );
488502 assertEq (poolInfo3.amount, 25 ether);
489503 assertEq (stakeToken.balanceOf (user3), 75 ether);
490504 }
@@ -813,6 +827,14 @@ contract StakingFacetTest is DiamondTestSetup {
813827 stakingFacet.setStakingStartBlock (0 );
814828 }
815829
830+ function testSetStakingStartBlock_ShouldRevert_IfStartBlockIsLessOrEqualToCurrentStartBlock ()
831+ public
832+ {
833+ vm.prank (admin);
834+ vm.expectRevert ("Must be greater than the previous start block " );
835+ stakingFacet.setStakingStartBlock (1 );
836+ }
837+
816838 function testSetStakingStartBlock_ShouldUpdateStakingStartBlock () public {
817839 (, , , , , , , uint256 oldStartBlock ) = stakingFacet
818840 .getStakingSettings ();
0 commit comments