Skip to content

Commit 120c70b

Browse files
test: add get_stakers exit action flow
1 parent 1ff8fc2 commit 120c70b

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

workspace/apps/staking/contracts/src/flow_test/flow_ideas.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
# Flow Ideas
22
## `get_stakers`
3-
- Staker exit action, get stakers.
43
- Delegate STRK and/or BTC, get stakers.
54
- Undelegate, get stakers.
65
- Enable / disable tokens, get stakers.

workspace/apps/staking/contracts/src/flow_test/test.cairo

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1957,3 +1957,40 @@ fn get_stakers_staker_exit_intent_flow_test() {
19571957
let stakers = staking_consensus.get_stakers(:epoch_id);
19581958
assert!(stakers == expected_stakers);
19591959
}
1960+
1961+
/// Flow:
1962+
/// Staker stake
1963+
/// Advance K epochs
1964+
/// Test get_stakers
1965+
/// Staker exit intent
1966+
/// Wait for exit wait window
1967+
/// Staker exit action
1968+
/// Test get_stakers
1969+
#[test]
1970+
fn get_stakers_staker_exit_action_flow_test() {
1971+
let cfg: StakingInitConfig = Default::default();
1972+
let mut system = SystemConfigTrait::basic_stake_flow_cfg(:cfg).deploy();
1973+
let amount = system.staking.get_min_stake();
1974+
let staker = system.new_staker(:amount);
1975+
system.stake(:staker, :amount, pool_enabled: false, commission: 200);
1976+
let staking = system.staking.dispatcher();
1977+
let staking_consensus = system.staking.consensus_dispatcher();
1978+
system.advance_k_epochs();
1979+
1980+
// Test get_stakers
1981+
let epoch_id = staking.get_current_epoch();
1982+
let stakers = staking_consensus.get_stakers(:epoch_id);
1983+
let expected_stakers = array![(staker.staker.address, STRK_WEIGHT_FACTOR, Option::None)].span();
1984+
assert!(stakers == expected_stakers);
1985+
1986+
// Staker exit
1987+
system.staker_exit_intent(:staker);
1988+
system.advance_time(time: system.staking.get_exit_wait_window());
1989+
system.staker_exit_action(:staker);
1990+
1991+
// Test get_stakers
1992+
let epoch_id = staking.get_current_epoch();
1993+
let stakers = staking_consensus.get_stakers(:epoch_id);
1994+
let expected_stakers = array![].span();
1995+
assert!(stakers == expected_stakers);
1996+
}

0 commit comments

Comments
 (0)