From 757718d5e1105df5ed7b0067d61c0511aebd9302 Mon Sep 17 00:00:00 2001 From: Petrovska Date: Wed, 17 Jul 2024 22:08:07 +0900 Subject: [PATCH 1/2] test: cover corner-case scenario always on ci test suite, it should not revert once fixed --- test/regression/CornerCaseV0_1_0Test.t.sol | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 test/regression/CornerCaseV0_1_0Test.t.sol diff --git a/test/regression/CornerCaseV0_1_0Test.t.sol b/test/regression/CornerCaseV0_1_0Test.t.sol new file mode 100644 index 0000000..388118f --- /dev/null +++ b/test/regression/CornerCaseV0_1_0Test.t.sol @@ -0,0 +1,34 @@ +// SPDX-License-Identifier: GPL-3.0-only +pragma solidity ^0.8.25; + +import {BaseFixture} from "../BaseFixture.sol"; + +import {VirtualModule} from "../../src/types/DataTypes.sol"; + +/// @notice This file is for testing the corner cases that were faced during v0.1.0 tests-run +/// and face minor challenges which should be always fixed and gracefully handled on `>v0.1.0` +contract CornerCaseV0_1_0Test is BaseFixture { + function test_DepositAndShutdownBlockage() public { + // 1. encounter condition where naturally a deposit is being queued + _incomingEure(1_000e18); + uint256 surplus = roboModule.surplus(); + assertGt(surplus, 0); + + _upkeepAndAssertPayload(abi.encode(VirtualModule.PoolAction.DEPOSIT, surplus)); + + (uint256 nonceDepositTx,, bytes memory payloadDepositTx) = roboModule.queuedTx(); + assertEq(nonceDepositTx, 1); + + // 2. admin of the virtual module decides to `shutdown()` while initial queue tx is on cooldown phase still + vm.prank(roboModule.CARD()); + roboModule.shutdown(); + + // 3. Internal payload should not have being override, otherwise initial deposit never can be executed + (uint256 nonceShutdownTx,, bytes memory payloadShutdownTx) = roboModule.queuedTx(); + + // @note if it not identical a blockage will be suffer and force to wait for tx expiration + assertEq(nonceDepositTx, nonceShutdownTx); + assertEq(payloadDepositTx, payloadShutdownTx); + + } +} From 566e425d7960ede02b0d396c0ed95375a1600c25 Mon Sep 17 00:00:00 2001 From: petrovska-petro Date: Wed, 17 Jul 2024 13:10:03 +0000 Subject: [PATCH 2/2] style: ci lint `forge fmt` --- test/regression/CornerCaseV0_1_0Test.t.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/test/regression/CornerCaseV0_1_0Test.t.sol b/test/regression/CornerCaseV0_1_0Test.t.sol index 388118f..797accb 100644 --- a/test/regression/CornerCaseV0_1_0Test.t.sol +++ b/test/regression/CornerCaseV0_1_0Test.t.sol @@ -29,6 +29,5 @@ contract CornerCaseV0_1_0Test is BaseFixture { // @note if it not identical a blockage will be suffer and force to wait for tx expiration assertEq(nonceDepositTx, nonceShutdownTx); assertEq(payloadDepositTx, payloadShutdownTx); - } }