Skip to content

Commit 1ff8fc2

Browse files
test: add get_stakers exit intent flow
1 parent 84af108 commit 1ff8fc2

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-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,7 +1,6 @@
11
# Flow Ideas
22
## `get_stakers`
33
- Staker exit action, get stakers.
4-
- Staker exit intent, get stakers.
54
- Delegate STRK and/or BTC, get stakers.
65
- Undelegate, get stakers.
76
- Enable / disable tokens, get stakers.

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

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)