difftreelog
fix(tests) resolve review comments
in: master
4 files changed
js-packages/.vscode/settings.jsondiffbeforeafterboth--- a/js-packages/.vscode/settings.json
+++ b/js-packages/.vscode/settings.json
@@ -4,7 +4,6 @@
"RUN_XCM_TESTS": "1"
},
"mochaExplorer.files": "tests/**/*.test.ts",
- "mochaExplorer.require": "ts-node/register",
"mochaExplorer.esmLoader": true,
"mochaExplorer.nodeArgv": ["--loader", "ts-node/esm"],
"eslint.format.enable": true,
js-packages/test-utils/util.tsdiffbeforeafterboth--- a/js-packages/test-utils/util.ts
+++ b/js-packages/test-utils/util.ts
@@ -117,7 +117,6 @@
Identity = 'identity',
Democracy = 'democracy',
Council = 'council',
- FinancialCouncil = 'financialcouncil',
//CouncilMembership = 'councilmembership',
TechnicalCommittee = 'technicalcommittee',
Fellowship = 'fellowshipcollective',
js-packages/tests/sub/governance/financialCouncil.test.tsdiffbeforeafterboth1import type {IKeyringPair} from '@polkadot/types/types';2import {usingPlaygrounds, itSub, expect, describeGov} from '@unique/test-utils/util.js';3import {Event} from '@unique/test-utils';4import {democracyFastTrackVotingPeriod, IFinCounselors, clearTechComm, dummyProposalCall, initFinCouncil, clearFinCouncil, democracyLaunchPeriod, initFellowship, dummyProposal, fellowshipPropositionOrigin, defaultEnactmentMoment, initCouncil, clearCouncil, clearFellowship} from './util.js';567describeGov('Governance: Financial Council tests', () => {8 let donor: IKeyringPair;9 let finCounselors: IFinCounselors;10 let sudoer: IKeyringPair;1112 const moreThanHalfCouncilThreshold = 2;1314 before(async function() {15 await usingPlaygrounds(async (helper, privateKey) => {16 sudoer = await privateKey('//Alice');17 donor = await privateKey({url: import.meta.url});18 });19 });2021 beforeEach(async () => {22 finCounselors = await initFinCouncil(donor, sudoer);23 });2425 afterEach(async () => {26 await clearFinCouncil(sudoer);27 await clearTechComm(sudoer);28 });2930 async function proposalFromMoreThanHalfFinCouncil(proposal: any) {31 return await usingPlaygrounds(async (helper) => {32 expect((await helper.finCouncil.membership.getMembers()).length).to.be.equal(3);33 const proposeResult = await helper.finCouncil.collective.propose(34 finCounselors.ildar,35 proposal,36 moreThanHalfCouncilThreshold,37 );3839 const councilProposedEvent = Event.FinCouncil.Proposed.expect(proposeResult);40 const proposalIndex = councilProposedEvent.proposalIndex;41 const proposalHash = councilProposedEvent.proposalHash;4243 await helper.finCouncil.collective.vote(finCounselors.greg, proposalHash, proposalIndex, true);44 await helper.finCouncil.collective.vote(finCounselors.ildar, proposalHash, proposalIndex, true);4546 return await helper.finCouncil.collective.close(finCounselors.ildar, proposalHash, proposalIndex);47 });48 }4950 async function proposalFromAllFinCouncil(proposal: any) {51 return await usingPlaygrounds(async (helper) => {52 expect((await helper.finCouncil.membership.getMembers()).length).to.be.equal(3);53 const proposeResult = await helper.finCouncil.collective.propose(54 finCounselors.ildar,55 proposal,56 moreThanHalfCouncilThreshold,57 );5859 const councilProposedEvent = Event.FinCouncil.Proposed.expect(proposeResult);60 const proposalIndex = councilProposedEvent.proposalIndex;61 const proposalHash = councilProposedEvent.proposalHash;6263 await helper.finCouncil.collective.vote(finCounselors.greg, proposalHash, proposalIndex, true);64 await helper.finCouncil.collective.vote(finCounselors.ildar, proposalHash, proposalIndex, true);65 await helper.finCouncil.collective.vote(finCounselors.andy, proposalHash, proposalIndex, true);6667 return await helper.finCouncil.collective.close(finCounselors.andy, proposalHash, proposalIndex);68 });69 }7071 itSub('FinCouncil member can register foreign asset', async ({helper}) => {72 const location = {73 parents: 1,74 interior: {X3: [75 {76 Parachain: 1000,77 },78 {79 PalletInstance: 50,80 },81 {82 GeneralIndex: 1984,83 },84 ]},85 };86 const assetId = {Concrete: location};8788 const registerForeignAssetCall = helper.constructApiCall(89 'api.tx.foreignAssets.forceRegisterForeignAsset',90 [{V3: assetId}, helper.util.str2vec('New Asset'), 'NEW', {Fungible: 10}],91 );9293 await helper.finCouncil.collective.execute(finCounselors.andy, registerForeignAssetCall);9495 const asset = await helper.foreignAssets.foreignCollectionId(location);96 expect(asset).not.null;97 });9899 itSub('[Negative] FinCouncil can\'t fast-track Democracy proposals', async ({helper}) => {100 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);101 await helper.wait.parachainBlockMultiplesOf(35n);102103 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);104105 await expect(proposalFromAllFinCouncil(helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0)))106 .rejectedWith('BadOrigin');107 });108109 itSub('[Negative] FinCouncil member cannot fast-track Democracy proposals', async ({helper}) => {110 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);111 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);112113 await expect(helper.finCouncil.collective.execute(114 finCounselors.andy,115 helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0),116 )).to.be.rejectedWith('BadOrigin');117 });118119 itSub('[Negative] FinCouncil can\'t cancel Democracy proposals', async ({helper}) => {120 const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n);121 const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex;122123 await expect(proposalFromAllFinCouncil(helper.democracy.cancelProposalCall(proposalIndex)))124 .rejectedWith('BadOrigin');125 });126127 itSub('[Negative] FinCouncil member cannot cancel Democracy proposals', async ({helper}) => {128 const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n);129 const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex;130131 await expect(helper.finCouncil.collective.execute(132 finCounselors.andy,133 helper.democracy.cancelProposalCall(proposalIndex),134 ))135 .to.be.rejectedWith('BadOrigin');136 });137138 itSub('[Negative] FinCouncil can\'t cancel ongoing Democracy referendums', async ({helper}) => {139 await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper));140 const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started);141 const referendumIndex = startedEvent.referendumIndex;142143 await expect(proposalFromAllFinCouncil(helper.democracy.emergencyCancelCall(referendumIndex)))144 .rejectedWith('BadOrigin');145 });146147 itSub('[Negative] FinCouncil member cannot cancel ongoing Democracy referendums', async ({helper}) => {148 await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper));149 const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started);150 const referendumIndex = startedEvent.referendumIndex;151152 await expect(helper.finCouncil.collective.execute(153 finCounselors.andy,154 helper.democracy.emergencyCancelCall(referendumIndex),155 )).to.be.rejectedWith('BadOrigin');156 });157158 itSub('[Negative] FinCouncil can\'t veto Democracy proposals', async ({helper}) => {159 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);160 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);161162 await expect(proposalFromAllFinCouncil(helper.democracy.vetoExternalCall(preimageHash)))163 .rejectedWith('BadOrigin');164 });165166 itSub('[Negative] FinCouncil member can\'t veto Democracy proposals', async ({helper}) => {167 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);168 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);169170 await expect(helper.finCouncil.collective.execute(171 finCounselors.andy,172 helper.democracy.vetoExternalCall(preimageHash),173 )).rejectedWith('BadOrigin');174 });175176 itSub('[Negative] FinCouncil cannot blacklist Democracy proposals', async ({helper}) => {177 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);178 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);179180 await expect(proposalFromAllFinCouncil(helper.democracy.blacklistCall(preimageHash))).to.be.rejectedWith('BadOrigin');181 });182183 itSub('[Negative] FinCouncil member cannot blacklist Democracy proposals', async ({helper}) => {184 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);185 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);186187 await expect(helper.finCouncil.collective.execute(188 finCounselors.andy,189 helper.democracy.blacklistCall(preimageHash),190 )).to.be.rejectedWith('BadOrigin');191 });192193 itSub('[Negative] FinCouncil can\'t cancel Fellowship referendums', async ({helper}) => {194 const fellowship = await initFellowship(donor, sudoer);195 const fellowshipProposer = fellowship[5][0];196 const proposal = dummyProposal(helper);197198 const submitResult = await helper.fellowship.referenda.submit(199 fellowshipProposer,200 fellowshipPropositionOrigin,201 proposal,202 defaultEnactmentMoment,203 );204 const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex;205 await expect(proposalFromAllFinCouncil(helper.fellowship.referenda.cancelCall(referendumIndex)))206 .rejectedWith('BadOrigin');207 });208209 itSub('[Negative] FinCouncil member cannot cancel Fellowship referendums', async ({helper}) => {210 const fellowship = await initFellowship(donor, sudoer);211 const fellowshipProposer = fellowship[5][0];212 const proposal = dummyProposal(helper);213214 const submitResult = await helper.fellowship.referenda.submit(215 fellowshipProposer,216 fellowshipPropositionOrigin,217 proposal,218 defaultEnactmentMoment,219 );220221 const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex;222223 await expect(helper.finCouncil.collective.execute(224 finCounselors.andy,225 helper.fellowship.referenda.cancelCall(referendumIndex),226 )).to.be.rejectedWith('BadOrigin');227 });228229 itSub('[Negative] FinCouncil cannot add a Fellowship member', async ({helper}) => {230 const newFellowshipMember = helper.arrange.createEmptyAccount();231 const addMemberProposal = helper.fellowship.collective.addMemberCall(newFellowshipMember.address);232233 await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');234 });235236 itSub('[Negative] FinCouncil member cannot add a Fellowship member', async ({helper}) => {237 const newFellowshipMember = helper.arrange.createEmptyAccount();238 await expect(helper.finCouncil.collective.execute(239 finCounselors.andy,240 helper.fellowship.collective.addMemberCall(newFellowshipMember.address),241 )).to.be.rejectedWith('BadOrigin');242 });243244 itSub('[Negative] FinCouncil cannot submit regular democracy proposal', async ({helper}) => {245 const councilProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n);246247 await expect(proposalFromAllFinCouncil(councilProposal)).to.be.rejectedWith('BadOrigin');248 });249250 itSub('[Negative] FinCouncil cannot externally propose SuperMajorityAgainst', async ({helper}) => {251 const commiteeProposal = await helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper));252253 await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');254 });255256 itSub('[Negative] FinCouncil member cannot submit regular democracy proposal', async ({helper}) => {257 const memberProposal = await helper.democracy.proposeCall(dummyProposalCall(helper), 0n);258259 await expect(helper.finCouncil.collective.execute(260 finCounselors.andy,261 memberProposal,262 )).to.be.rejectedWith('BadOrigin');263 });264265 itSub('[Negative] FinCouncil cannot externally propose SimpleMajority', async ({helper}) => {266 const commiteeProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper));267268 await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');269 });270271 itSub('[Negative] FinCouncil cannot externally propose SuperMajorityApprove', async ({helper}) => {272 const commiteeProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper));273274 await expect(proposalFromAllFinCouncil(commiteeProposal)).to.be.rejectedWith('BadOrigin');275 });276277 itSub('[Negative] FinCouncil member cannot externally propose SuperMajorityAgainst', async ({helper}) => {278 const memberProposal = await helper.democracy.externalProposeDefaultCall(dummyProposalCall(helper));279280 await expect(helper.finCouncil.collective.execute(281 finCounselors.andy,282 memberProposal,283 )).to.be.rejectedWith('BadOrigin');284 });285286 itSub('[Negative] FinCouncil member cannot externally propose SimpleMajority', async ({helper}) => {287 const memberProposal = await helper.democracy.externalProposeMajorityCall(dummyProposalCall(helper));288289 await expect(helper.finCouncil.collective.execute(290 finCounselors.andy,291 memberProposal,292 )).to.be.rejectedWith('BadOrigin');293 });294295 itSub('[Negative] FinCouncil member cannot externally propose SuperMajorityApprove', async ({helper}) => {296 const memberProposal = await helper.democracy.externalProposeCall(dummyProposalCall(helper));297298 await expect(helper.finCouncil.collective.execute(299 finCounselors.andy,300 memberProposal,301 )).to.be.rejectedWith('BadOrigin');302 });303304 itSub('[Negative] FinCouncil cannot add/remove a Council member', async ({helper}) => {305 const newCouncilMember = helper.arrange.createEmptyAccount();306 const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address);307 const removeMemberProposal = helper.council.membership.removeMemberCall(newCouncilMember.address);308309 await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');310 await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');311 });312313 itSub('[Negative] FinCouncil member cannot add/remove a Council member', async ({helper}) => {314 const newCouncilMember = helper.arrange.createEmptyAccount();315 const addMemberProposal = helper.council.membership.addMemberCall(newCouncilMember.address);316 const removeMemberProposal = helper.council.membership.removeMemberCall(newCouncilMember.address);317318 await expect(helper.finCouncil.collective.execute(319 finCounselors.andy,320 addMemberProposal,321 )).to.be.rejectedWith('BadOrigin');322 await expect(helper.finCouncil.collective.execute(323 finCounselors.andy,324 removeMemberProposal,325 )).to.be.rejectedWith('BadOrigin');326 });327328 itSub('[Negative] FinCouncil cannot add/remove a FinCouncil member', async ({helper}) => {329 const newCouncilMember = helper.arrange.createEmptyAccount();330 const addMemberProposal = helper.finCouncil.membership.addMemberCall(newCouncilMember.address);331 const removeMemberProposal = helper.finCouncil.membership.removeMemberCall(finCounselors.ildar.address);332333 await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');334 await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');335 });336337 itSub('[Negative] FinCouncil cannot add/remove a FinCouncil prime member', async ({helper}) => {338 const setPrimeCall = helper.finCouncil.membership.setPrimeCall(finCounselors.andy.address);339 const clearPrimeCall = helper.finCouncil.membership.clearPrimeCall();340341 await expect(proposalFromAllFinCouncil(setPrimeCall)).to.be.rejectedWith('BadOrigin');342 await expect(proposalFromAllFinCouncil(clearPrimeCall)).to.be.rejectedWith('BadOrigin');343 });344345 itSub('[Negative] FinCouncil member cannot add/remove a FinCouncil prime member', async ({helper}) => {346 await expect(helper.finCouncil.collective.execute(347 finCounselors.andy,348 helper.finCouncil.membership.setPrimeCall(finCounselors.andy.address),349 )).to.be.rejectedWith('BadOrigin');350351 await expect(helper.finCouncil.collective.execute(352 finCounselors.andy,353 helper.finCouncil.membership.clearPrimeCall(),354 )).to.be.rejectedWith('BadOrigin');355 });356357 itSub('[Negative] FinCouncil member cannot add/remove a FinCouncil member', async ({helper}) => {358 const newCouncilMember = helper.arrange.createEmptyAccount();359 const addMemberProposal = helper.finCouncil.membership.addMemberCall(newCouncilMember.address);360 const removeMemberProposal = helper.finCouncil.membership.removeMemberCall(finCounselors.ildar.address);361362 await expect(helper.finCouncil.collective.execute(363 finCounselors.andy,364 addMemberProposal,365 )).to.be.rejectedWith('BadOrigin');366 await expect(helper.finCouncil.collective.execute(367 finCounselors.andy,368 removeMemberProposal,369 )).to.be.rejectedWith('BadOrigin');370 });371372 itSub('[Negative] FinCouncil cannot set/clear Council prime member', async ({helper}) => {373 const counselors = await initCouncil(donor, sudoer);374 const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address);375 const proposalForClear = await helper.council.membership.clearPrimeCall();376377 await expect(proposalFromAllFinCouncil(proposalForSet)).to.be.rejectedWith('BadOrigin');378 await expect(proposalFromAllFinCouncil(proposalForClear)).to.be.rejectedWith('BadOrigin');379 await clearCouncil(sudoer);380 });381382 itSub('[Negative] FinCouncil member cannot set/clear Council prime member', async ({helper}) => {383 const counselors = await initCouncil(donor, sudoer);384 const proposalForSet = await helper.council.membership.setPrimeCall(counselors.charu.address);385 const proposalForClear = await helper.council.membership.clearPrimeCall();386387 await expect(helper.finCouncil.collective.execute(388 finCounselors.andy,389 proposalForSet,390 )).to.be.rejectedWith('BadOrigin');391 await expect(helper.finCouncil.collective.execute(392 finCounselors.andy,393 proposalForClear,394 )).to.be.rejectedWith('BadOrigin');395 await clearCouncil(sudoer);396 });397398 itSub('[Negative] FinCouncil cannot add/remove a TechComm member', async ({helper}) => {399 const newCommMember = helper.arrange.createEmptyAccount();400 const addMemberProposal = helper.technicalCommittee.membership.addMemberCall(newCommMember.address);401 const removeMemberProposal = helper.technicalCommittee.membership.removeMemberCall(newCommMember.address);402403 await expect(proposalFromAllFinCouncil(addMemberProposal)).to.be.rejectedWith('BadOrigin');404 await expect(proposalFromAllFinCouncil(removeMemberProposal)).to.be.rejectedWith('BadOrigin');405 });406407 itSub('[Negative] FinCouncil member cannot add/remove a TechComm member', async ({helper}) => {408 const newCommMember = helper.arrange.createEmptyAccount();409 const addMemberProposal = helper.technicalCommittee.membership.addMemberCall(newCommMember.address);410 const removeMemberProposal = helper.technicalCommittee.membership.removeMemberCall(newCommMember.address);411412 await expect(helper.finCouncil.collective.execute(413 finCounselors.andy,414 addMemberProposal,415 )).to.be.rejectedWith('BadOrigin');416 await expect(helper.finCouncil.collective.execute(417 finCounselors.andy,418 removeMemberProposal,419 )).to.be.rejectedWith('BadOrigin');420 });421422 itSub('[Negative] FinCouncil cannot remove a Fellowship member', async ({helper}) => {423 const fellowship = await initFellowship(donor, sudoer);424425 await expect(proposalFromAllFinCouncil(helper.fellowship.collective.removeMemberCall(fellowship[5][0].address, 5))).to.be.rejectedWith('BadOrigin');426 await clearFellowship(sudoer);427 });428429 itSub('[Negative] FinCouncil member cannot remove a Fellowship member', async ({helper}) => {430 const fellowship = await initFellowship(donor, sudoer);431432 await expect(helper.finCouncil.collective.execute(433 finCounselors.andy,434 helper.fellowship.collective.removeMemberCall(fellowship[5][0].address, 5),435 )).to.be.rejectedWith('BadOrigin');436 await clearFellowship(sudoer);437 });438439440});js-packages/tests/sub/governance/technicalCommittee.test.tsdiffbeforeafterboth--- a/js-packages/tests/sub/governance/technicalCommittee.test.ts
+++ b/js-packages/tests/sub/governance/technicalCommittee.test.ts
@@ -133,10 +133,10 @@
itSub('[Negative] TechComm can\'t add FinCouncil member', async ({helper}) => {
const newFinCouncilMember = helper.arrange.createEmptyAccount();
const addMemberProposal = helper.finCouncil.membership.addMemberCall(newFinCouncilMember.address);
- await proposalFromAllCommittee(addMemberProposal);
+ await expect(proposalFromAllCommittee(addMemberProposal)).rejectedWith('BadOrigin');
const finCouncilMembers = await helper.finCouncil.membership.getMembers();
- expect(finCouncilMembers).to.contains(newFinCouncilMember.address);
+ expect(finCouncilMembers).to.not.contains(newFinCouncilMember.address);
});