@@ -1910,3 +1910,50 @@ fn get_stakers_zero_balance_flow_test() {
19101910 let stakers = staking_consensus . get_stakers (: epoch_id );
19111911 assert! (stakers == expected_stakers );
19121912}
1913+
1914+ /// Flow:
1915+ /// Staker stake
1916+ /// Advance K epochs
1917+ /// Staker exit intent
1918+ /// Test get_stakers
1919+ /// Advance epoch
1920+ /// Test get_stakers
1921+ /// Advance epoch
1922+ /// Test get_stakers
1923+ #[test]
1924+ fn get_stakers_staker_exit_intent_flow_test () {
1925+ let cfg : StakingInitConfig = Default :: default ();
1926+ let mut system = SystemConfigTrait :: basic_stake_flow_cfg (: cfg ). deploy ();
1927+ let amount = system . staking. get_min_stake ();
1928+ let staker = system . new_staker (: amount );
1929+ system . stake (: staker , : amount , pool_enabled : false , commission : 200 );
1930+ let staking = system . staking. dispatcher ();
1931+ let staking_consensus = system . staking. consensus_dispatcher ();
1932+ system . advance_k_epochs ();
1933+
1934+ // Staker exit intent
1935+ system . staker_exit_intent (: staker );
1936+
1937+ // Test get_stakers
1938+ let epoch_id = staking . get_current_epoch ();
1939+ let stakers = staking_consensus . get_stakers (: epoch_id );
1940+ let expected_stakers = array! [(staker . staker. address, STRK_WEIGHT_FACTOR , Option :: None )]. span ();
1941+ assert! (stakers == expected_stakers );
1942+
1943+ // Test next epoch.
1944+ let stakers = staking_consensus . get_stakers (epoch_id : epoch_id + 1 );
1945+ assert! (stakers == expected_stakers );
1946+ system . advance_epoch ();
1947+ let epoch_id = staking . get_current_epoch ();
1948+ let stakers = staking_consensus . get_stakers (: epoch_id );
1949+ assert! (stakers == expected_stakers );
1950+
1951+ // Test next next epoch.
1952+ let stakers = staking_consensus . get_stakers (epoch_id : epoch_id + 1 );
1953+ let expected_stakers = array! []. span ();
1954+ assert! (stakers == expected_stakers );
1955+ system . advance_epoch ();
1956+ let epoch_id = staking . get_current_epoch ();
1957+ let stakers = staking_consensus . get_stakers (: epoch_id );
1958+ assert! (stakers == expected_stakers );
1959+ }
0 commit comments