Skip to content

Commit 920d336

Browse files
test: add get_stakers increase stake flow
1 parent c246f17 commit 920d336

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-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-
- Stake, get stakers, increase stake, get stakers.
43
- Stake with delegation, get stakers, switch pool, get stakers.
54
- Staker without public key.
65

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

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

Comments
 (0)