git.delta.rocks / unique-network / refs/commits / 33605551e558

difftreelog

fix(tests) resolve review comments

Maksandre2024-06-10parent: #5da2ac3.patch.diff
in: master

4 files changed

modifiedjs-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,
modifiedjs-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',
modifiedjs-packages/tests/sub/governance/financialCouncil.test.tsdiffbeforeafterboth
after · js-packages/tests/sub/governance/financialCouncil.test.ts
1import 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});
modifiedjs-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);
   });