@@ -27,7 +27,22 @@ contract Integration_DurationVault is IntegrationCheckUtils {
2727 uint internal constant VAULT_MAX_PER_DEPOSIT = 200 ether ;
2828 uint internal constant VAULT_STAKE_CAP = 1000 ether ;
2929
30- function test_durationVaultLifecycle_flow_deposit_lock_mature () public {
30+ bool internal durationVaultSupported;
31+
32+ modifier vaultSupported () {
33+ if (! durationVaultSupported) {
34+ console.log ("DurationVaultIntegration: duration vault beacon not configured, skipping " );
35+ return ;
36+ }
37+ _;
38+ }
39+
40+ function setUp () public virtual override {
41+ super .setUp ();
42+ durationVaultSupported = address (strategyFactory.durationVaultBeacon ()) != address (0 );
43+ }
44+
45+ function test_durationVaultLifecycle_flow_deposit_lock_mature () public vaultSupported {
3146 DurationVaultContext memory ctx = _deployDurationVault (_randomInsuranceRecipient ());
3247 User staker = new User ("duration-staker " );
3348
@@ -74,7 +89,7 @@ contract Integration_DurationVault is IntegrationCheckUtils {
7489 assertEq (ctx.asset.balanceOf (address (staker)), depositAmount, "staker should recover deposit " );
7590 }
7691
77- function test_durationVault_operatorIntegrationAndMetadataUpdate () public {
92+ function test_durationVault_operatorIntegrationAndMetadataUpdate () public vaultSupported {
7893 DurationVaultContext memory ctx = _deployDurationVault (_randomInsuranceRecipient ());
7994
8095 assertTrue (delegationManager.isOperator (address (ctx.vault)), "vault must self-register as operator " );
@@ -93,7 +108,7 @@ contract Integration_DurationVault is IntegrationCheckUtils {
93108 assertEq (ctx.vault.metadataURI (), newURI, "metadata not updated " );
94109 }
95110
96- function test_durationVault_TVLLimits_enforced_and_frozen_after_lock () public {
111+ function test_durationVault_TVLLimits_enforced_and_frozen_after_lock () public vaultSupported {
97112 DurationVaultContext memory ctx = _deployDurationVault (_randomInsuranceRecipient ());
98113 User staker = new User ("duration-tvl-staker " );
99114
@@ -134,7 +149,7 @@ contract Integration_DurationVault is IntegrationCheckUtils {
134149 ctx.vault.updateTVLLimits (10 ether, 20 ether);
135150 }
136151
137- function test_durationVault_rewards_claim_while_locked () public {
152+ function test_durationVault_rewards_claim_while_locked () public vaultSupported {
138153 DurationVaultContext memory ctx = _deployDurationVault (_randomInsuranceRecipient ());
139154 User staker = new User ("duration-reward-staker " );
140155 uint depositAmount = 80 ether ;
@@ -168,7 +183,7 @@ contract Integration_DurationVault is IntegrationCheckUtils {
168183 assertEq (rewardToken.balanceOf (address (staker)), rewardAmount, "staker failed to claim rewards " );
169184 }
170185
171- function test_durationVault_slashing_routes_to_insurance_and_blocks_after_maturity () public {
186+ function test_durationVault_slashing_routes_to_insurance_and_blocks_after_maturity () public vaultSupported {
172187 address insuranceRecipient = _randomInsuranceRecipient ();
173188 DurationVaultContext memory ctx = _deployDurationVault (insuranceRecipient);
174189 User staker = new User ("duration-slash-staker " );
@@ -206,7 +221,7 @@ contract Integration_DurationVault is IntegrationCheckUtils {
206221 assertEq (ctx.asset.balanceOf (insuranceRecipient), expectedRedistribution, "post-maturity slash should not pay " );
207222 }
208223
209- function test_durationVault_slashing_affectsQueuedWithdrawalsAndPaysInsurance () public {
224+ function test_durationVault_slashing_affectsQueuedWithdrawalsAndPaysInsurance () public vaultSupported {
210225 address insuranceRecipient = _randomInsuranceRecipient ();
211226 DurationVaultContext memory ctx = _deployDurationVault (insuranceRecipient);
212227 User staker = new User ("duration-slash-queued " );
0 commit comments