Skip to content

Commit

Permalink
Add list_members_by_weight() tests
Browse files Browse the repository at this point in the history
  • Loading branch information
maurolacy committed Apr 17, 2021
1 parent bf0ce24 commit 90a602c
Showing 1 changed file with 74 additions and 2 deletions.
76 changes: 74 additions & 2 deletions contracts/cw4-stake/src/contract.rs
Original file line number Diff line number Diff line change
Expand Up @@ -627,8 +627,80 @@ mod tests {
assert_eq!(members.len(), 0);
}

// TODO: Test list_members_by_weight
// Test pagination / limits
#[test]
fn try_list_members_by_weight() {
let mut deps = mock_dependencies(&[]);
default_instantiate(deps.as_mut());

bond(deps.as_mut(), 11_000, 6_500, 5_000, 1);

let members = list_members_by_weight(deps.as_ref(), None, None)
.unwrap()
.members;
assert_eq!(members.len(), 3);
// Assert the set is sorted by (descending) weight
assert_eq!(
members,
vec![
Member {
addr: USER1.into(),
weight: 11
},
Member {
addr: USER2.into(),
weight: 6
},
Member {
addr: USER3.into(),
weight: 5
}
]
);

// Test pagination / limits
let members = list_members_by_weight(deps.as_ref(), None, Some(1))
.unwrap()
.members;
assert_eq!(members.len(), 1);
// Assert the set is proper
assert_eq!(
members,
vec![Member {
addr: USER1.into(),
weight: 11
},]
);

// Next page
let last = members.last().unwrap();
let start_after = Some((last.weight, last.addr.clone()));
let members = list_members_by_weight(deps.as_ref(), start_after, None)
.unwrap()
.members;
assert_eq!(members.len(), 2);
// Assert the set is proper
assert_eq!(
members,
vec![
Member {
addr: USER2.into(),
weight: 6
},
Member {
addr: USER3.into(),
weight: 5
}
]
);

// Assert there's no more
let last = members.last().unwrap();
let start_after = Some((last.weight, last.addr.clone()));
let members = list_members_by_weight(deps.as_ref(), start_after, Some(1))
.unwrap()
.members;
assert_eq!(members.len(), 0);
}

#[test]
fn unbond_stake_update_membership() {
Expand Down

0 comments on commit 90a602c

Please sign in to comment.