Skip to content

Commit e1f4bc5

Browse files
authored
Add tests to leadership module (#785)
* added test for leader with invalid poolId * cleaned test * pr corrections * clippy correction * style correction * style correction * pr correction, removed valid pool check * run fmt * simplified test logic
1 parent 016bfec commit e1f4bc5

File tree

1 file changed

+39
-0
lines changed
  • chain-impl-mockchain/src/leadership/genesis

1 file changed

+39
-0
lines changed

chain-impl-mockchain/src/leadership/genesis/mod.rs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,45 @@ mod tests {
295295
);
296296
}
297297

298+
#[test]
299+
pub fn test_leader_with_invalid_pool_id() {
300+
// Arrange
301+
let leader_election_parameters = LeaderElectionParameters::new();
302+
303+
let cb = ConfigBuilder::new()
304+
.with_slots_per_epoch(leader_election_parameters.slots_per_epoch)
305+
.with_active_slots_coeff(leader_election_parameters.active_slots_coeff_as_milli());
306+
307+
let mut ledger = LedgerBuilder::from_config(cb)
308+
.build()
309+
.expect("cannot build test ledger")
310+
.ledger;
311+
312+
let pools: HashMap<_, _> = std::iter::from_fn(|| {
313+
let (pool_id, pool_vrf_private_key) = make_pool(&mut ledger);
314+
Some((
315+
pool_id,
316+
(pool_vrf_private_key, 0, leader_election_parameters.value),
317+
))
318+
})
319+
.take(leader_election_parameters.pools_count)
320+
.collect();
321+
322+
let selection = make_leadership_with_pools(&ledger, &pools);
323+
324+
let (invalid_pool_id, invalid_pool_vrf_private_key) = make_pool(&mut ledger);
325+
326+
// Act
327+
let invalid_leader = selection.leader(
328+
&invalid_pool_id,
329+
&invalid_pool_vrf_private_key,
330+
ledger.date(),
331+
);
332+
333+
// Assert
334+
assert!(invalid_leader.unwrap().is_none());
335+
}
336+
298337
#[test]
299338
pub fn test_leader_election_is_consistent_with_stake_distribution() {
300339
let leader_election_parameters = LeaderElectionParameters::new();

0 commit comments

Comments
 (0)