diff --git a/test/fork/LidoFixedPriceMultiLpARM/SetCrossPrice.t.sol b/test/fork/LidoFixedPriceMultiLpARM/SetCrossPrice.t.sol index 927b9dd..4864f19 100644 --- a/test/fork/LidoFixedPriceMultiLpARM/SetCrossPrice.t.sol +++ b/test/fork/LidoFixedPriceMultiLpARM/SetCrossPrice.t.sol @@ -5,6 +5,7 @@ pragma solidity 0.8.23; import {Fork_Shared_Test_} from "test/fork/shared/Shared.sol"; // Contracts +import {AbstractARM} from "contracts/AbstractARM.sol"; contract Fork_Concrete_LidoARM_SetCrossPrice_Test_ is Fork_Shared_Test_ { ////////////////////////////////////////////////////// @@ -17,6 +18,16 @@ contract Fork_Concrete_LidoARM_SetCrossPrice_Test_ is Fork_Shared_Test_ { ////////////////////////////////////////////////////// /// --- REVERTING TESTS ////////////////////////////////////////////////////// + function test_RevertWhen_SetCrossPrice_Because_NotOwner() public asRandomAddress { + vm.expectRevert("ARM: Only owner can call this function."); + lidoARM.setCrossPrice(0.9998e36); + } + + function test_RevertWhen_SetCrossPrice_Because_Operator() public asOperator { + vm.expectRevert("ARM: Only owner can call this function."); + lidoARM.setCrossPrice(0.9998e36); + } + function test_RevertWhen_SetCrossPrice_Because_CrossPriceTooLow() public { vm.expectRevert("ARM: cross price too low"); lidoARM.setCrossPrice(0); @@ -50,7 +61,7 @@ contract Fork_Concrete_LidoARM_SetCrossPrice_Test_ is Fork_Shared_Test_ { } function test_RevertWhen_SetCrossPrice_Because_TooManyBaseAssets() public { - deal(address(steth), address(lidoARM), 1e18); + deal(address(steth), address(lidoARM), MIN_TOTAL_SUPPLY + 1); vm.expectRevert("ARM: too many base assets"); lidoARM.setCrossPrice(1e36 - 1); } @@ -58,4 +69,14 @@ contract Fork_Concrete_LidoARM_SetCrossPrice_Test_ is Fork_Shared_Test_ { ////////////////////////////////////////////////////// /// --- PASSING TESTS ////////////////////////////////////////////////////// + + function test_SetCrossPrice() public { + assertEq(lidoARM.crossPrice(), 1e36); + + vm.expectEmit({emitter: address(lidoARM)}); + emit AbstractARM.CrossPriceUpdated(1e36 - 1); + lidoARM.setCrossPrice(1e36 - 1); + + assertEq(lidoARM.crossPrice(), 1e36 - 1); + } } diff --git a/test/fork/LidoFixedPriceMultiLpARM/Setters.t.sol b/test/fork/LidoFixedPriceMultiLpARM/Setters.t.sol index 540582b..855c066 100644 --- a/test/fork/LidoFixedPriceMultiLpARM/Setters.t.sol +++ b/test/fork/LidoFixedPriceMultiLpARM/Setters.t.sol @@ -118,12 +118,12 @@ contract Fork_Concrete_lidoARM_Setters_Test_ is Fork_Shared_Test_ { lidoARM.setPrices(0, 0); } - function test_SellPriceCannotCrossOneByMoreThanTenBps() public asOperator { + function test_RevertWhen_SetPrices_Because_SellPriceCannotCrossOneByMoreThanTenBps() public asOperator { vm.expectRevert("ARM: sell price too low"); lidoARM.setPrices(0.998 * 1e36, 0.9989 * 1e36); } - function test_BuyPriceCannotCrossOneByMoreThanTenBps() public asOperator { + function test_RevertWhen_SetPrices_Because_BuyPriceCannotCrossOneByMoreThanTenBps() public asOperator { vm.expectRevert("ARM: buy price too high"); lidoARM.setPrices(1.0011 * 1e36, 1.002 * 1e36); } @@ -146,36 +146,6 @@ contract Fork_Concrete_lidoARM_Setters_Test_ is Fork_Shared_Test_ { assertEq(lidoARM.traderate1(), 992 * 1e33); } - ////////////////////////////////////////////////////// - /// --- Set Cross Price - REVERTING TESTS - ////////////////////////////////////////////////////// - function test_RevertWhen_SetCrossPrice_Because_NotOwner() public asRandomAddress { - vm.expectRevert("ARM: Only owner can call this function."); - lidoARM.setCrossPrice(0.9998e36); - } - - function test_RevertWhen_SetCrossPrice_Because_Operator() public asOperator { - vm.expectRevert("ARM: Only owner can call this function."); - lidoARM.setCrossPrice(0.9998e36); - } - - function test_RevertWhen_SetCrossPrice_Because_PriceRange() public asLidoARMOwner { - // 21 basis points lower than 1.0 - vm.expectRevert("ARM: cross price too low"); - lidoARM.setCrossPrice(0.9979e36); - - // 1 basis points higher than 1.0 - vm.expectRevert("ARM: cross price too high"); - lidoARM.setCrossPrice(1.0001e36); - } - - function test_RevertWhen_SetCrossPrice_With_stETH_Because_PriceDrop() public { - deal(address(steth), address(lidoARM), MIN_TOTAL_SUPPLY + 1); - - vm.expectRevert("ARM: too many base assets"); - lidoARM.setCrossPrice(0.9998e36); - } - ////////////////////////////////////////////////////// /// --- Set Cross Price - PASSING TESTS //////////////////////////////////////////////////////