difftreelog
fix(tests) update test cases and resolve review comments
in: master
2 files changed
js-packages/tests/sub/governance/council.test.tsdiffbeforeafterboth--- a/js-packages/tests/sub/governance/council.test.ts
+++ b/js-packages/tests/sub/governance/council.test.ts
@@ -489,4 +489,21 @@
await expect(helper.council.collective.close(counselors.filip, proposalHash, proposalIndex)).to.be.rejectedWith('TooEarly');
});
+ itSub('[Negative] Council can\'t veto Democracy proposals', async ({helper}) => {
+ const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);
+ await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);
+
+ await expect(proposalFromAllCouncil(helper.democracy.vetoExternalCall(preimageHash)))
+ .rejectedWith('BadOrigin');
+ });
+
+ itSub('[Negative] Council member can\'t veto Democracy proposals', async ({helper}) => {
+ const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);
+ await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);
+
+ await expect(helper.council.collective.execute(
+ counselors.charu,
+ helper.democracy.vetoExternalCall(preimageHash),
+ )).rejectedWith('BadOrigin');
+ });
});
js-packages/tests/sub/governance/financialCouncil.test.tsdiffbeforeafterboth28 await clearTechComm(sudoer);28 await clearTechComm(sudoer);29 });29 });303031 async function proposalFromMoreThanHalfCouncil(proposal: any) {31 async function proposalFromMoreThanHalfFinCouncil(proposal: any) {32 return await usingPlaygrounds(async (helper) => {32 return await usingPlaygrounds(async (helper) => {33 expect((await helper.finCouncil.membership.getMembers()).length).to.be.equal(3);33 expect((await helper.finCouncil.membership.getMembers()).length).to.be.equal(3);34 const proposeResult = await helper.finCouncil.collective.propose(34 const proposeResult = await helper.finCouncil.collective.propose(48 });48 });49 }49 }505051 async function proposalFromAllCouncil(proposal: any) {51 async function proposalFromAllFinCouncil(proposal: any) {52 return await usingPlaygrounds(async (helper) => {52 return await usingPlaygrounds(async (helper) => {53 expect((await helper.finCouncil.membership.getMembers()).length).to.be.equal(3);53 expect((await helper.finCouncil.membership.getMembers()).length).to.be.equal(3);54 const proposeResult = await helper.finCouncil.collective.propose(54 const proposeResult = await helper.finCouncil.collective.propose(103103104 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);104 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);105105106 await expect(proposalFromAllCouncil(helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0)))106 await expect(proposalFromAllFinCouncil(helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0)))107 .rejectedWith('BadOrigin');107 .rejectedWith('BadOrigin');108 });108 });109109121 const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n);121 const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n);122 const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex;122 const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex;123123124 await expect(proposalFromAllCouncil(helper.democracy.cancelProposalCall(proposalIndex)))124 await expect(proposalFromAllFinCouncil(helper.democracy.cancelProposalCall(proposalIndex)))125 .rejectedWith('BadOrigin');125 .rejectedWith('BadOrigin');126 });126 });127127141 const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started);141 const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started);142 const referendumIndex = startedEvent.referendumIndex;142 const referendumIndex = startedEvent.referendumIndex;143143144 await expect(proposalFromAllCouncil(helper.democracy.emergencyCancelCall(referendumIndex)))144 await expect(proposalFromAllFinCouncil(helper.democracy.emergencyCancelCall(referendumIndex)))145 .rejectedWith('BadOrigin');145 .rejectedWith('BadOrigin');146 });146 });147147156 )).to.be.rejectedWith('BadOrigin');156 )).to.be.rejectedWith('BadOrigin');157 });157 });158159 itSub('[Negative] FinCouncil can\'t veto Democracy proposals', async ({helper}) => {160 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);161 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);162163 await expect(proposalFromAllFinCouncil(helper.democracy.vetoExternalCall(preimageHash)))164 .rejectedWith('BadOrigin');165 });158166159 itSub('[Negative] FinCouncil member can\'t veto Democracy proposals', async ({helper}) => {167 itSub('[Negative] FinCouncil member can\'t veto Democracy proposals', async ({helper}) => {160 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);168 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);170 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);178 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);171 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);179 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);172180173 await expect(proposalFromAllCouncil(helper.democracy.blacklistCall(preimageHash))).to.be.rejectedWith('BadOrigin');181 await expect(proposalFromAllFinCouncil(helper.democracy.blacklistCall(preimageHash))).to.be.rejectedWith('BadOrigin');174 });182 });175183176 itSub('[Negative] FinCouncil member cannot blacklist Democracy proposals', async ({helper}) => {184 itSub('[Negative] FinCouncil member cannot blacklist Democracy proposals', async ({helper}) => {183 )).to.be.rejectedWith('BadOrigin');191 )).to.be.rejectedWith('BadOrigin');184 });192 });185193186 itSub('[Negative] FinCouncil can\' cancel Fellowship referendums', async ({helper}) => {194 itSub('[Negative] FinCouncil can\'t cancel Fellowship referendums', async ({helper}) => {187 const fellowship = await initFellowship(donor, sudoer);195 const fellowship = await initFellowship(donor, sudoer);188 const fellowshipProposer = fellowship[5][0];196 const fellowshipProposer = fellowship[5][0];189 const proposal = dummyProposal(helper);197 const proposal = dummyProposal(helper);195 defaultEnactmentMoment,203 defaultEnactmentMoment,196 );204 );197 const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex;205 const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex;198 await expect(proposalFromAllCouncil(helper.fellowship.referenda.cancelCall(referendumIndex)))206 await expect(proposalFromAllFinCouncil(helper.fellowship.referenda.cancelCall(referendumIndex)))199 .rejectedWith('BadOrigin');207 .rejectedWith('BadOrigin');200 });208 });201209202 itSub('[Negative] TechComm member cannot cancel Fellowship referendums', async ({helper}) => {210 itSub('[Negative] FinCouncil member cannot cancel Fellowship referendums', async ({helper}) => {203 const fellowship = await initFellowship(donor, sudoer);211 const fellowship = await initFellowship(donor, sudoer);204 const fellowshipProposer = fellowship[5][0];212 const fellowshipProposer = fellowship[5][0];205 const proposal = dummyProposal(helper);213 const proposal = dummyProposal(helper);219 )).to.be.rejectedWith('BadOrigin');227 )).to.be.rejectedWith('BadOrigin');220 });228 });221229222 itSub('[Negative] FinCouncil member can\' add a Fellowship member', async ({helper}) => {230 itSub('[Negative] FinCouncil member can\'t add a Fellowship member', async ({helper}) => {223 const newFellowshipMember = helper.arrange.createEmptyAccount();231 const newFellowshipMember = helper.arrange.createEmptyAccount();224 await expect(helper.finCouncil.collective.execute(232 await expect(helper.finCouncil.collective.execute(225 finCounselors.andy,233 finCounselors.andy,230 itSub('[Negative] FinCouncil cannot submit regular democracy proposal', async ({helper}) => {238 itSub('[Negative] FinCouncil cannot submit regular democracy proposal', async ({helper}) => {231 const councilProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n);239 const councilProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n);232240233 await expect(proposalFromAllCouncil(councilProposal)).to.be.rejectedWith('BadOrigin');241 await expect(proposalFromAllFinCouncil(councilProposal)).to.be.rejectedWith('BadOrigin');234 });242 });235243236 itSub('[Negative] FinCouncil cannot externally propose SuperMajorityAgainst', async ({helper}) => {244 itSub('[Negative] FinCouncil cannot externally propose SuperMajorityAgainst', async ({helper}) => {237 const commiteeProposal = await helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper));245 const commiteeProposal = await helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper));238246239 await expect(proposalFromAllCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');247 await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');240 });248 });241249242 itSub('[Negative] FinCouncil member cannot submit regular democracy proposal', async ({helper}) => {250 itSub('[Negative] FinCouncil member cannot submit regular democracy proposal', async ({helper}) => {251 itSub('[Negative] FinCouncil cannot externally propose SimpleMajority', async ({helper}) => {259 itSub('[Negative] FinCouncil cannot externally propose SimpleMajority', async ({helper}) => {252 const commiteeProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper));260 const commiteeProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper));253261254 await expect(proposalFromAllCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');262 await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');255 });263 });256264257 itSub('[Negative] FinCouncil cannot externally propose SuperMajorityApprove', async ({helper}) => {265 itSub('[Negative] FinCouncil cannot externally propose SuperMajorityApprove', async ({helper}) => {258 const commiteeProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper));266 const commiteeProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper));259267260 await expect(proposalFromAllCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');268 await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');261 });269 });262270263 itSub('[Negative] FinCouncil member cannot externally propose SuperMajorityAgainst', async ({helper}) => {271 itSub('[Negative] FinCouncil member cannot externally propose SuperMajorityAgainst', async ({helper}) => {292 const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address);300 const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address);293 const removeMemberProposal = helper.council.membership.removeMemberCall(newCouncilMember.address);301 const removeMemberProposal = helper.council.membership.removeMemberCall(newCouncilMember.address);294302295 await expect(proposalFromAllCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');303 await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');296 await expect(proposalFromAllCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');304 await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');297 });305 });298306299 itSub('[Negative] FinCouncil member cannot add/remove a Council member', async ({helper}) => {307 itSub('[Negative] FinCouncil member cannot add/remove a Council member', async ({helper}) => {316 const addMemberProposal = helper.finCouncil.membership.addMemberCall(newCouncilMember.address);324 const addMemberProposal = helper.finCouncil.membership.addMemberCall(newCouncilMember.address);317 const removeMemberProposal = helper.finCouncil.membership.removeMemberCall(finCounselors.ildar.address);325 const removeMemberProposal = helper.finCouncil.membership.removeMemberCall(finCounselors.ildar.address);318326319 await expect(proposalFromAllCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');327 await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');320 await expect(proposalFromAllCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');328 await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');321 });329 });330331 itSub('[Negative] FinCouncil cannot add/remove a FinCouncil prime member', async ({helper}) => {332 const setPrimeCall = helper.finCouncil.membership.setPrimeCall(finCounselors.andy.address);333 const clearPrimeCall = helper.finCouncil.membership.clearPrimeCall();334335 await expect(proposalFromAllFinCouncil(setPrimeCall)).to.be.rejectedWith('BadOrigin');336 await expect(proposalFromAllFinCouncil(clearPrimeCall)).to.be.rejectedWith('BadOrigin');337 });338339 itSub('[Negative] FinCouncil member cannot add/remove a FinCouncil prime member', async ({helper}) => {340 await expect(helper.finCouncil.collective.execute(341 finCounselors.andy,342 helper.finCouncil.membership.setPrimeCall(finCounselors.andy.address),343 )).to.be.rejectedWith('BadOrigin');344345 await expect(helper.finCouncil.collective.execute(346 finCounselors.andy,347 helper.finCouncil.membership.clearPrimeCall(),348 )).to.be.rejectedWith('BadOrigin');349 });322350323 itSub('[Negative] FinCouncil member cannot add/remove a FinCouncil member', async ({helper}) => {351 itSub('[Negative] FinCouncil member cannot add/remove a FinCouncil member', async ({helper}) => {324 const newCouncilMember = helper.arrange.createEmptyAccount();352 const newCouncilMember = helper.arrange.createEmptyAccount();340 const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address);368 const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address);341 const proposalForClear = await helper.council.membership.clearPrimeCall();369 const proposalForClear = await helper.council.membership.clearPrimeCall();342370343 await expect(proposalFromAllCouncil(proposalForSet)).to.be.rejectedWith('BadOrigin');371 await expect(proposalFromAllFinCouncil(proposalForSet)).to.be.rejectedWith('BadOrigin');344 await expect(proposalFromAllCouncil(proposalForClear)).to.be.rejectedWith('BadOrigin');372 await expect(proposalFromAllFinCouncil(proposalForClear)).to.be.rejectedWith('BadOrigin');345 await clearCouncil(sudoer);373 await clearCouncil(sudoer);346 });374 });347375363391364 itSub('[Negative] FinCouncil cannot add/remove a TechComm member', async ({helper}) => {392 itSub('[Negative] FinCouncil cannot add/remove a TechComm member', async ({helper}) => {365 const newCommMember = helper.arrange.createEmptyAccount();393 const newCommMember = helper.arrange.createEmptyAccount();366 const addMemberProposal = helper.council.membership.addMemberCall(newCommMember.address);394 const addMemberProposal = helper.technicalCommittee.membership.addMemberCall(newCommMember.address);367 const removeMemberProposal = helper.council.membership.removeMemberCall(newCommMember.address);395 const removeMemberProposal = helper.technicalCommittee.membership.removeMemberCall(newCommMember.address);368396369 await expect(proposalFromAllCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');397 await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');370 await expect(proposalFromAllCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');398 await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');371 });399 });372400373 itSub('[Negative] FinCouncil member cannot add/remove a TechComm member', async ({helper}) => {401 itSub('[Negative] FinCouncil member cannot add/remove a TechComm member', async ({helper}) => {374 const newCommMember = helper.arrange.createEmptyAccount();402 const newCommMember = helper.arrange.createEmptyAccount();375 const addMemberProposal = helper.council.membership.addMemberCall(newCommMember.address);403 const addMemberProposal = helper.technicalCommittee.membership.addMemberCall(newCommMember.address);376 const removeMemberProposal = helper.council.membership.removeMemberCall(newCommMember.address);404 const removeMemberProposal = helper.technicalCommittee.membership.removeMemberCall(newCommMember.address);377405378 await expect(helper.finCouncil.collective.execute(406 await expect(helper.finCouncil.collective.execute(379 finCounselors.andy,407 finCounselors.andy,388 itSub('[Negative] FinCouncil cannot remove a Fellowship member', async ({helper}) => {416 itSub('[Negative] FinCouncil cannot remove a Fellowship member', async ({helper}) => {389 const fellowship = await initFellowship(donor, sudoer);417 const fellowship = await initFellowship(donor, sudoer);390418391 await expect(proposalFromAllCouncil(helper.fellowship.collective.removeMemberCall(fellowship[5][0].address, 5))).to.be.rejectedWith('BadOrigin');419 await expect(proposalFromAllFinCouncil(helper.fellowship.collective.removeMemberCall(fellowship[5][0].address, 5))).to.be.rejectedWith('BadOrigin');392 await clearFellowship(sudoer);420 await clearFellowship(sudoer);393 });421 });394422