Skip to content

Commit

Permalink
fix: move setCrossPrice test to new file.
Browse files Browse the repository at this point in the history
  • Loading branch information
clement-ux committed Oct 14, 2024
1 parent c4446bb commit 1b90651
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 33 deletions.
23 changes: 22 additions & 1 deletion test/fork/LidoFixedPriceMultiLpARM/SetCrossPrice.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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_ {
//////////////////////////////////////////////////////
Expand All @@ -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);
Expand Down Expand Up @@ -50,12 +61,22 @@ 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);
}

//////////////////////////////////////////////////////
/// --- 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);
}
}
34 changes: 2 additions & 32 deletions test/fork/LidoFixedPriceMultiLpARM/Setters.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand All @@ -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
//////////////////////////////////////////////////////
Expand Down

0 comments on commit 1b90651

Please sign in to comment.