@@ -2424,3 +2424,47 @@ fn get_stakers_enable_disable_btc_tokens_flow_test() {
24242424 . span ();
24252425 assert! (stakers == expected_stakers );
24262426}
2427+
2428+ /// Flow:
2429+ /// 2 Stakers stake.
2430+ /// Test get_stakers.
2431+ /// Staker 1 increase stake.
2432+ /// Test get_stakers.
2433+ #[test]
2434+ fn get_stakers_increase_stake_flow_test () {
2435+ let cfg : StakingInitConfig = Default :: default ();
2436+ let mut system = SystemConfigTrait :: basic_stake_flow_cfg (: cfg ). deploy ();
2437+ let stake_amount = system . staking. get_min_stake ();
2438+ let staking_consensus = system . staking. consensus_dispatcher ();
2439+ let staker_1 = system . new_staker (amount : stake_amount * 2 );
2440+ let staker_2 = system . new_staker (amount : stake_amount );
2441+ system . stake (staker : staker_1 , amount : stake_amount , pool_enabled : false , commission : 200 );
2442+ system . stake (staker : staker_2 , amount : stake_amount , pool_enabled : false , commission : 200 );
2443+ system . advance_k_epochs ();
2444+
2445+ // Test get_stakers
2446+ let stakers = staking_consensus . get_stakers (epoch_id : system . staking. get_current_epoch ());
2447+ let expected_stakers = array! [
2448+ (staker_1 . staker. address, STRK_WEIGHT_FACTOR / 2 , Option :: None ),
2449+ (staker_2 . staker. address, STRK_WEIGHT_FACTOR / 2 , Option :: None ),
2450+ ]
2451+ . span ();
2452+ assert! (stakers == expected_stakers );
2453+
2454+ // Staker 1 increase stake.
2455+ system . increase_stake (staker : staker_1 , amount : stake_amount );
2456+
2457+ // Test same epoch.
2458+ let stakers = staking_consensus . get_stakers (epoch_id : system . staking. get_current_epoch ());
2459+ assert! (stakers == expected_stakers );
2460+
2461+ // Test after K epochs.
2462+ system . advance_k_epochs ();
2463+ let stakers = staking_consensus . get_stakers (epoch_id : system . staking. get_current_epoch ());
2464+ let expected_stakers = array! [
2465+ (staker_1 . staker. address, STRK_WEIGHT_FACTOR * 2 / 3 , Option :: None ),
2466+ (staker_2 . staker. address, STRK_WEIGHT_FACTOR / 3 , Option :: None ),
2467+ ]
2468+ . span ();
2469+ assert! (stakers == expected_stakers );
2470+ }
0 commit comments