From e37f1454389ee7c4d81bbba448b6e1de7bc918f0 Mon Sep 17 00:00:00 2001 From: Maxime Normandin Date: Sun, 23 Nov 2025 09:15:15 -0500 Subject: [PATCH 1/2] add renounceOwnership test for OwnerFacet --- test/access/Owner/OwnerFacet.t.sol | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/test/access/Owner/OwnerFacet.t.sol b/test/access/Owner/OwnerFacet.t.sol index e3170a1c..94c19d89 100644 --- a/test/access/Owner/OwnerFacet.t.sol +++ b/test/access/Owner/OwnerFacet.t.sol @@ -131,6 +131,31 @@ contract OwnerFacetTest is Test { // Note: Zero address cannot make any calls since it has no private key } + // ============================================ + // Renounce Ownership Direct Call Tests + // ============================================ + + function test_RenounceOwnership_DirectCall_SetsOwnerToZero() public { + vm.prank(INITIAL_OWNER); + ownerFacet.renounceOwnership(); + + assertEq(ownerFacet.owner(), ZERO_ADDRESS); + } + + function test_RenounceOwnership_DirectCall_EmitsEvent() public { + vm.expectEmit(true, true, false, true); + emit OwnershipTransferred(INITIAL_OWNER, ZERO_ADDRESS); + + vm.prank(INITIAL_OWNER); + ownerFacet.renounceOwnership(); + } + + function test_RevertWhen_RenounceOwnership_CalledByNonOwner() public { + vm.expectRevert(OwnerFacet.OwnerUnauthorizedAccount.selector); + vm.prank(ALICE); + ownerFacet.renounceOwnership(); + } + // ============================================ // Edge Cases // ============================================ From 8db0d28693d43b8ca4a61c9783bb7cde0f3bcb52 Mon Sep 17 00:00:00 2001 From: Maxime Normandin Date: Sun, 23 Nov 2025 09:19:26 -0500 Subject: [PATCH 2/2] add missing test: direct call for renounce ownership, requireOwner view validation --- .../OwnerTwoSteps/LibOwnerTwoSteps.t.sol | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test/access/OwnerTwoSteps/LibOwnerTwoSteps.t.sol b/test/access/OwnerTwoSteps/LibOwnerTwoSteps.t.sol index c18ed1d5..ed750094 100644 --- a/test/access/OwnerTwoSteps/LibOwnerTwoSteps.t.sol +++ b/test/access/OwnerTwoSteps/LibOwnerTwoSteps.t.sol @@ -275,6 +275,33 @@ contract LibOwnerTwoStepsTest is Test { harness.transferOwnership(ALICE); } + function test_RenounceOwnership_DirectCall_SetsOwnerToZero() public { + vm.prank(INITIAL_OWNER); + harness.renounceOwnership(); + + assertEq(harness.owner(), ZERO_ADDRESS); + assertEq(harness.pendingOwner(), ZERO_ADDRESS); + } + + function test_RenounceOwnership_DirectCall_EmitsEvent() public { + vm.expectEmit(true, true, false, true); + emit OwnershipTransferred(INITIAL_OWNER, ZERO_ADDRESS); + + vm.prank(INITIAL_OWNER); + harness.renounceOwnership(); + } + + function test_RequireOwner_SucceedsForOwner() public { + vm.prank(INITIAL_OWNER); + harness.requireOwner(); + } + + function test_RevertWhen_RequireOwner_CalledByNonOwner() public { + vm.expectRevert(LibOwnerTwoSteps.OwnerUnauthorizedAccount.selector); + vm.prank(ALICE); + harness.requireOwner(); + } + // ============================================ // Sequential Transfer Tests // ============================================