mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-31 14:31:02 +00:00
Alliance pallet: split force_set_members call (#12179)
* Alliance pallet: split force_set_members call * use counts for event * ".git/.scripts/bench-bot.sh" pallet dev pallet_alliance Co-authored-by: command-bot <>
This commit is contained in:
@@ -26,19 +26,57 @@ use crate::mock::*;
|
||||
type AllianceMotionEvent = pallet_collective::Event<Test, pallet_collective::Instance1>;
|
||||
|
||||
#[test]
|
||||
fn force_set_members_works() {
|
||||
fn init_members_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
// alliance must be reset first, no witness data
|
||||
assert_noop!(
|
||||
Alliance::init_members(Origin::root(), vec![8], vec![], vec![],),
|
||||
Error::<Test, ()>::AllianceAlreadyInitialized,
|
||||
);
|
||||
|
||||
// give a retirement notice to check later a retiring member not removed
|
||||
assert_ok!(Alliance::give_retirement_notice(Origin::signed(2)));
|
||||
assert!(Alliance::is_member_of(&2, MemberRole::Retiring));
|
||||
|
||||
// disband the Alliance to init new
|
||||
assert_ok!(Alliance::disband(Origin::root(), DisbandWitness::new(2, 0)));
|
||||
|
||||
// fails without root
|
||||
assert_noop!(Alliance::init_members(Origin::signed(1), vec![], vec![], vec![]), BadOrigin);
|
||||
|
||||
// founders missing, other members given
|
||||
assert_noop!(
|
||||
Alliance::init_members(Origin::root(), vec![], vec![4], vec![2],),
|
||||
Error::<Test, ()>::FoundersMissing,
|
||||
);
|
||||
|
||||
// success call
|
||||
assert_ok!(Alliance::init_members(Origin::root(), vec![8, 5], vec![4], vec![2],));
|
||||
|
||||
// assert new set of voting members
|
||||
assert_eq!(Alliance::voting_members_sorted(), vec![4, 5, 8]);
|
||||
// assert new members member
|
||||
assert!(Alliance::is_founder(&8));
|
||||
assert!(Alliance::is_founder(&5));
|
||||
assert!(Alliance::is_fellow(&4));
|
||||
assert!(Alliance::is_ally(&2));
|
||||
// assert a retiring member from previous Alliance not removed
|
||||
assert!(Alliance::is_member_of(&2, MemberRole::Retiring));
|
||||
|
||||
System::assert_last_event(mock::Event::Alliance(crate::Event::MembersInitialized {
|
||||
founders: vec![5, 8],
|
||||
fellows: vec![4],
|
||||
allies: vec![2],
|
||||
}));
|
||||
})
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn disband_works() {
|
||||
new_test_ext().execute_with(|| {
|
||||
// ensure alliance is set
|
||||
assert_eq!(Alliance::voting_members_sorted(), vec![1, 2, 3]);
|
||||
|
||||
// creating and proposing proposals
|
||||
let (proposal, proposal_len, hash) = make_remark_proposal(42);
|
||||
assert_ok!(Alliance::propose(Origin::signed(1), 3, Box::new(proposal), proposal_len));
|
||||
|
||||
let (k_proposal, k_proposal_len, k_hash) = make_kick_member_proposal(2);
|
||||
assert_ok!(Alliance::propose(Origin::signed(1), 3, Box::new(k_proposal), k_proposal_len));
|
||||
let mut proposals = vec![hash, k_hash];
|
||||
|
||||
// give a retirement notice to check later a retiring member not removed
|
||||
assert_ok!(Alliance::give_retirement_notice(Origin::signed(2)));
|
||||
assert!(Alliance::is_member_of(&2, MemberRole::Retiring));
|
||||
@@ -50,124 +88,46 @@ fn force_set_members_works() {
|
||||
assert_eq!(Balances::free_balance(9), 15);
|
||||
assert!(Alliance::is_member_of(&9, MemberRole::Ally));
|
||||
|
||||
// ensure proposal is listed as active proposal
|
||||
assert_eq!(<Test as Config>::ProposalProvider::proposals(), proposals);
|
||||
assert_eq!(<Test as Config>::ProposalProvider::proposals_count(), 2);
|
||||
|
||||
// fails without root
|
||||
assert_noop!(Alliance::disband(Origin::signed(1), Default::default()), BadOrigin);
|
||||
|
||||
// bad witness data checks
|
||||
assert_noop!(
|
||||
Alliance::force_set_members(
|
||||
Origin::signed(1),
|
||||
vec![],
|
||||
vec![],
|
||||
vec![],
|
||||
Default::default()
|
||||
),
|
||||
BadOrigin
|
||||
Alliance::disband(Origin::root(), Default::default(),),
|
||||
Error::<Test, ()>::BadWitness
|
||||
);
|
||||
|
||||
// nothing to do, witness data is default, new members not provided.
|
||||
assert_ok!(Alliance::force_set_members(
|
||||
Origin::root(),
|
||||
vec![],
|
||||
vec![],
|
||||
vec![],
|
||||
Default::default()
|
||||
));
|
||||
|
||||
// alliance must be reset first, no witness data.
|
||||
assert_noop!(
|
||||
Alliance::force_set_members(
|
||||
Origin::root(),
|
||||
vec![8],
|
||||
vec![],
|
||||
vec![],
|
||||
Default::default()
|
||||
),
|
||||
Error::<Test, ()>::AllianceAlreadyInitialized,
|
||||
);
|
||||
|
||||
// wrong witness data checks
|
||||
assert_noop!(
|
||||
Alliance::force_set_members(
|
||||
Origin::root(),
|
||||
vec![],
|
||||
vec![],
|
||||
vec![],
|
||||
ForceSetWitness::new(1, 3, 1)
|
||||
),
|
||||
Alliance::disband(Origin::root(), DisbandWitness::new(1, 1)),
|
||||
Error::<Test, ()>::BadWitness,
|
||||
);
|
||||
assert_noop!(
|
||||
Alliance::force_set_members(
|
||||
Origin::root(),
|
||||
vec![],
|
||||
vec![],
|
||||
vec![],
|
||||
ForceSetWitness::new(2, 1, 1)
|
||||
),
|
||||
Alliance::disband(Origin::root(), DisbandWitness::new(2, 0)),
|
||||
Error::<Test, ()>::BadWitness,
|
||||
);
|
||||
assert_noop!(
|
||||
Alliance::force_set_members(
|
||||
Origin::root(),
|
||||
vec![],
|
||||
vec![],
|
||||
vec![],
|
||||
ForceSetWitness::new(1, 3, 0)
|
||||
),
|
||||
Error::<Test, ()>::BadWitness,
|
||||
);
|
||||
|
||||
// founders missing, other members given
|
||||
assert_noop!(
|
||||
Alliance::force_set_members(
|
||||
Origin::root(),
|
||||
vec![],
|
||||
vec![4],
|
||||
vec![2],
|
||||
ForceSetWitness::new(2, 3, 1)
|
||||
),
|
||||
Error::<Test, ()>::FoundersMissing,
|
||||
);
|
||||
|
||||
// success call
|
||||
assert_ok!(Alliance::force_set_members(
|
||||
Origin::root(),
|
||||
vec![8, 5],
|
||||
vec![4],
|
||||
vec![2],
|
||||
ForceSetWitness::new(2, 3, 1)
|
||||
));
|
||||
assert_ok!(Alliance::disband(Origin::root(), DisbandWitness::new(2, 1)));
|
||||
|
||||
// assert new set of voting members
|
||||
assert_eq!(Alliance::voting_members_sorted(), vec![4, 5, 8]);
|
||||
// assert new ally member
|
||||
assert!(Alliance::is_ally(&2));
|
||||
// assert a retiring member from previous Alliance not removed
|
||||
assert!(Alliance::is_member_of(&2, MemberRole::Retiring));
|
||||
// assert old alliance disband.
|
||||
// assert members disband
|
||||
assert!(!Alliance::is_member(&1));
|
||||
assert!(!Alliance::is_member(&3));
|
||||
assert!(!Alliance::is_member(&9));
|
||||
assert!(!Alliance::is_initialized());
|
||||
// assert a retiring member from the previous Alliance not removed
|
||||
assert!(Alliance::is_member_of(&2, MemberRole::Retiring));
|
||||
// deposit unreserved
|
||||
assert_eq!(Balances::free_balance(9), 40);
|
||||
// all proposals are removed
|
||||
assert_eq!(<Test as Config>::ProposalProvider::proposals(), vec![]);
|
||||
assert_eq!(<Test as Config>::ProposalProvider::proposals_count(), 0);
|
||||
|
||||
// assert events
|
||||
proposals.sort();
|
||||
assert_prev_event(mock::Event::Alliance(crate::Event::AllianceDisbanded {
|
||||
members: vec![1, 3, 9],
|
||||
proposals,
|
||||
System::assert_last_event(mock::Event::Alliance(crate::Event::AllianceDisbanded {
|
||||
voting_members: 2,
|
||||
ally_members: 1,
|
||||
unreserved: 1,
|
||||
}));
|
||||
|
||||
System::assert_last_event(mock::Event::Alliance(crate::Event::MembersInitialized {
|
||||
founders: vec![5, 8],
|
||||
fellows: vec![4],
|
||||
allies: vec![2],
|
||||
}));
|
||||
// the Alliance must be set first
|
||||
assert_noop!(
|
||||
Alliance::disband(Origin::root(), DisbandWitness::new(100, 100)),
|
||||
Error::<Test, ()>::AllianceNotYetInitialized,
|
||||
);
|
||||
})
|
||||
}
|
||||
|
||||
@@ -588,14 +548,10 @@ fn assert_powerless(user: Origin) {
|
||||
let cid = test_cid();
|
||||
let (proposal, _, _) = make_kick_member_proposal(42);
|
||||
|
||||
assert_noop!(Alliance::init_members(user.clone(), vec![], vec![], vec![],), BadOrigin);
|
||||
|
||||
assert_noop!(
|
||||
Alliance::force_set_members(
|
||||
user.clone(),
|
||||
vec![],
|
||||
vec![],
|
||||
vec![],
|
||||
ForceSetWitness { voting_members: 3, ..Default::default() }
|
||||
),
|
||||
Alliance::disband(user.clone(), DisbandWitness { voting_members: 3, ..Default::default() }),
|
||||
BadOrigin
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user