@@ -2888,3 +2888,47 @@ fn update_rewards_disable_rewards_consensus_rewards_flow_test() {
28882888 : result , expected_error : StakingError :: REWARDS_ALREADY_UPDATED . describe (),
28892889 );
28902890}
2891+
2892+ /// Flow:
2893+ /// Start consensus rewards.
2894+ /// Staker stake with STRK pool.
2895+ /// Delegator delegate STRK.
2896+ /// Advance K epochs.
2897+ /// update_rewards.
2898+ /// Test staker rewards.
2899+ /// Test delegator rewards.
2900+ /// Advance epoch.
2901+ /// Test delegator rewards.
2902+ #[test]
2903+ fn update_rewards_strk_pool_flow_test () {
2904+ let cfg : StakingInitConfig = Default :: default ();
2905+ let mut system = SystemConfigTrait :: basic_stake_flow_cfg (: cfg ). deploy ();
2906+ system . start_consensus_rewards ();
2907+ let stake_amount = system . staking. get_min_stake ();
2908+ let delegation_amount = STRK_CONFIG . min_for_rewards;
2909+ let staker = system . new_staker (amount : stake_amount );
2910+ let commission = 200 ;
2911+ system . stake (: staker , amount : stake_amount , pool_enabled : true , : commission );
2912+ let pool = system . staking. get_pool (: staker );
2913+ let delegator = system . new_delegator (amount : delegation_amount );
2914+ system . delegate (: delegator , : pool , amount : delegation_amount );
2915+ system . advance_k_epochs ();
2916+
2917+ system . update_rewards (: staker , disable_rewards : false );
2918+ let (expected_staker_rewards , expected_pool_rewards ) =
2919+ calculate_staker_strk_rewards_with_balances_v3 (
2920+ amount_own : stake_amount ,
2921+ pool_amount : delegation_amount ,
2922+ : commission ,
2923+ staking_contract : system . staking. address,
2924+ minting_curve_contract : system . minting_curve. address,
2925+ );
2926+ let staker_rewards = system . staker_claim_rewards (: staker );
2927+ let delegator_rewards = system . delegator_claim_rewards (: delegator , : pool );
2928+ assert! (staker_rewards == expected_staker_rewards );
2929+ assert! (delegator_rewards . is_zero ());
2930+
2931+ system . advance_epoch ();
2932+ let delegator_rewards = system . delegator_claim_rewards (: delegator , : pool );
2933+ assert! (delegator_rewards == expected_pool_rewards );
2934+ }
0 commit comments