git.delta.rocks / unique-network / refs/commits / 3050b513cda0

difftreelog

test add event asserts (#982)

Max Andreev2023-09-06parent: #ec8104e.patch.diff
in: master
* add events asserts

* fix eslint

* eslint fix - unused vars

7 files changed

modifiedtests/src/benchmarks/nesting/index.tsdiffbeforeafterboth
--- a/tests/src/benchmarks/nesting/index.ts
+++ b/tests/src/benchmarks/nesting/index.ts
@@ -1,17 +1,11 @@
 import {EthUniqueHelper, usingEthPlaygrounds} from '../../eth/util';
 import {readFile} from 'fs/promises';
-import {
-  ICrossAccountId,
-} from '../../util/playgrounds/types';
 import {IKeyringPair} from '@polkadot/types/types';
-import {UniqueNFTCollection} from '../../util/playgrounds/unique';
 import {Contract} from 'web3-eth-contract';
-import {createObjectCsvWriter} from 'csv-writer';
-import {convertToTokens, createCollectionForBenchmarks, PERMISSIONS, PROPERTIES} from '../utils/common';
+import {convertToTokens} from '../utils/common';
 import {makeNames} from '../../util';
 import {ContractImports} from '../../eth/util/playgrounds/types';
 import {RMRKNestableMintable} from './ABIGEN';
-import {rm} from 'fs';
 
 const {dirname} = makeNames(import.meta.url);
 
modifiedtests/src/eth/nesting/nest.test.tsdiffbeforeafterboth
--- a/tests/src/eth/nesting/nest.test.ts
+++ b/tests/src/eth/nesting/nest.test.ts
@@ -162,7 +162,7 @@
       const malignant = await helper.eth.createAccountWithBalance(donor);
 
       const {collectionId: collectionIdA, contract: contractA} = await createNestingCollection(helper, owner);
-      const {collectionId: collectionIdB, contract: contractB} = await createNestingCollection(helper, owner);
+      const {contract: contractB} = await createNestingCollection(helper, owner);
 
       await contractA.methods.setCollectionNesting([true, false, [contractA.options.address, contractB.options.address]]).send({from: owner});
 
modifiedtests/src/fetchMetadata.tsdiffbeforeafterboth
--- a/tests/src/fetchMetadata.ts
+++ b/tests/src/fetchMetadata.ts
@@ -1,16 +1,16 @@
-import { writeFile } from "fs/promises";
-import { join } from "path";
-import { exit } from "process";
-import { fileURLToPath } from "url";
+import {writeFile} from 'fs/promises';
+import {join} from 'path';
+import {exit} from 'process';
+import {fileURLToPath} from 'url';
 
 const url = process.env.RPC_URL;
-if (!url) throw new Error('RPC_URL is not set');
+if(!url) throw new Error('RPC_URL is not set');
 
 const srcDir = fileURLToPath(new URL('.', import.meta.url));
 
-for (let i = 0; i < 10; i++) {
+for(let i = 0; i < 10; i++) {
   try {
-    console.log(`Trying to fetch metadata, retry ${i + 1}/${10}`)
+    console.log(`Trying to fetch metadata, retry ${i + 1}/${10}`);
     const response = await fetch(url, {
       method: 'POST',
       headers: {
modifiedtests/src/governance/technicalCommittee.test.tsdiffbeforeafterboth
36 });36 });
37 });37 });
3838
39 async function proposalFromAllCommittee(proposal: any) {39 function proposalFromAllCommittee(proposal: any) {
40 return await usingPlaygrounds(async (helper) => {40 return usingPlaygrounds(async (helper) => {
41 expect((await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON().length).to.be.equal(allTechCommitteeThreshold);41 expect((await helper.callRpc('api.query.technicalCommitteeMembership.members')).toJSON().length).to.be.equal(allTechCommitteeThreshold);
42 const proposeResult = await helper.technicalCommittee.collective.propose(42 const proposeResult = await helper.technicalCommittee.collective.propose(
43 techcomms.andy,43 techcomms.andy,
54 await helper.technicalCommittee.collective.vote(techcomms.constantine, proposalHash, proposalIndex, true);54 await helper.technicalCommittee.collective.vote(techcomms.constantine, proposalHash, proposalIndex, true);
55 await helper.technicalCommittee.collective.vote(techcomms.greg, proposalHash, proposalIndex, true);55 await helper.technicalCommittee.collective.vote(techcomms.greg, proposalHash, proposalIndex, true);
5656
57 return await helper.technicalCommittee.collective.close(techcomms.andy, proposalHash, proposalIndex);57 const closeResult = await helper.technicalCommittee.collective.close(techcomms.andy, proposalHash, proposalIndex);
58 Event.TechnicalCommittee.Closed.expect(closeResult);
59 Event.TechnicalCommittee.Approved.expect(closeResult);
60 const {result} = Event.TechnicalCommittee.Executed.expect(closeResult);
61 expect(result).to.eq('Ok');
62
63 return closeResult;
58 });64 });
59 }65 }
6066
6470
65 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);71 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);
6672
67 await expect(proposalFromAllCommittee(helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0)))73 const fastTrackProposal = await proposalFromAllCommittee(helper.democracy.fastTrackCall(preimageHash, democracyFastTrackVotingPeriod, 0));
68 .to.be.fulfilled;74 Event.Democracy.Started.expect(fastTrackProposal);
69 });75 });
7076
71 itSub('TechComm can cancel Democracy proposals', async ({helper}) => {77 itSub('TechComm can cancel Democracy proposals', async ({helper}) => {
72 const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n);78 const proposeResult = await helper.getSudo().democracy.propose(sudoer, dummyProposalCall(helper), 0n);
73 const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex;79 const proposalIndex = Event.Democracy.Proposed.expect(proposeResult).proposalIndex;
7480
75 await expect(proposalFromAllCommittee(helper.democracy.cancelProposalCall(proposalIndex)))81 const cancelProposal = await proposalFromAllCommittee(helper.democracy.cancelProposalCall(proposalIndex));
76 .to.be.fulfilled;82 Event.Democracy.ProposalCanceled.expect(cancelProposal);
77 });83 });
7884
79 itSub('TechComm can cancel ongoing Democracy referendums', async ({helper}) => {85 itSub('TechComm can cancel ongoing Democracy referendums', async ({helper}) => {
80 await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper));86 await helper.getSudo().democracy.externalProposeDefault(sudoer, dummyProposalCall(helper));
81 const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started);87 const startedEvent = await helper.wait.expectEvent(democracyLaunchPeriod, Event.Democracy.Started);
82 const referendumIndex = startedEvent.referendumIndex;88 const referendumIndex = startedEvent.referendumIndex;
8389
84 await expect(proposalFromAllCommittee(helper.democracy.emergencyCancelCall(referendumIndex)))90 const emergencyCancelProposal = await proposalFromAllCommittee(helper.democracy.emergencyCancelCall(referendumIndex));
85 .to.be.fulfilled;91 Event.Democracy.Cancelled.expect(emergencyCancelProposal);
86 });92 });
87
8893
89 itSub('TechComm member can veto Democracy proposals', async ({helper}) => {94 itSub('TechComm member can veto Democracy proposals', async ({helper}) => {
90 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);95 const preimageHash = await helper.preimage.notePreimageFromCall(sudoer, dummyProposalCall(helper), true);
91 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);96 await helper.getSudo().democracy.externalProposeDefaultWithPreimage(sudoer, preimageHash);
9297
93 await expect(helper.technicalCommittee.collective.execute(98 const vetoExternalCall = await helper.technicalCommittee.collective.execute(
94 techcomms.andy,99 techcomms.andy,
95 helper.democracy.vetoExternalCall(preimageHash),100 helper.democracy.vetoExternalCall(preimageHash),
96 )).to.be.fulfilled;101 );
102 Event.Democracy.Vetoed.expect(vetoExternalCall);
97 });103 });
98104
99 itSub('TechComm can cancel Fellowship referendums', async ({helper}) => {105 itSub('TechComm can cancel Fellowship referendums', async ({helper}) => {
108 defaultEnactmentMoment,114 defaultEnactmentMoment,
109 );115 );
110 const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex;116 const referendumIndex = Event.FellowshipReferenda.Submitted.expect(submitResult).referendumIndex;
111 await expect(proposalFromAllCommittee(helper.fellowship.referenda.cancelCall(referendumIndex))).to.be.fulfilled;117 const cancelProposal = await proposalFromAllCommittee(helper.fellowship.referenda.cancelCall(referendumIndex));
118 Event.FellowshipReferenda.Cancelled.expect(cancelProposal);
112 });119 });
113120
114 itSub.skip('TechComm member can add a Fellowship member', async ({helper}) => {121 itSub.skip('TechComm member can add a Fellowship member', async ({helper}) => {
modifiedtests/src/maintenance.seqtest.tsdiffbeforeafterboth
--- a/tests/src/maintenance.seqtest.ts
+++ b/tests/src/maintenance.seqtest.ts
@@ -18,7 +18,6 @@
 import {ApiPromise} from '@polkadot/api';
 import {expect, itSched, itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from './util';
 import {itEth} from './eth/util';
-import {UniqueHelper} from './util/playgrounds/unique';
 import {main as correctState} from './migrations/correctStateAfterMaintenance';
 
 async function maintenanceEnabled(api: ApiPromise): Promise<boolean> {
modifiedtests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth
--- a/tests/src/util/playgrounds/unique.dev.ts
+++ b/tests/src/util/playgrounds/unique.dev.ts
@@ -174,6 +174,20 @@
     static Passed = this.Method('Passed', data => ({
       referendumIndex: eventJsonData<number>(data, 0),
     }));
+
+    static ProposalCanceled = this.Method('ProposalCanceled', data => ({
+      propIndex: eventJsonData<number>(data, 0),
+    }));
+
+    static Cancelled = this.Method('Cancelled', data => ({
+      propIndex: eventJsonData<number>(data, 0),
+    }));
+
+    static Vetoed = this.Method('Vetoed', data => ({
+      who: eventHumanData(data, 0),
+      proposalHash: eventHumanData(data, 1),
+      until: eventJsonData<number>(data, 1),
+    }));
   };
 
   static Council = class extends EventSection('council') {
@@ -188,6 +202,9 @@
       yes: eventJsonData<number>(data, 1),
       no: eventJsonData<number>(data, 2),
     }));
+    static Executed = this.Method('Executed', data => ({
+      proposalHash: eventHumanData(data, 0),
+    }));
   };
 
   static TechnicalCommittee = class extends EventSection('technicalCommittee') {
@@ -202,6 +219,13 @@
       yes: eventJsonData<number>(data, 1),
       no: eventJsonData<number>(data, 2),
     }));
+    static Approved = this.Method('Approved', data => ({
+      proposalHash: eventHumanData(data, 0),
+    }));
+    static Executed = this.Method('Executed', data => ({
+      proposalHash: eventHumanData(data, 0),
+      result: eventHumanData(data, 1),
+    }));
   };
 
   static FellowshipReferenda = class extends EventSection('fellowshipReferenda') {
@@ -210,6 +234,11 @@
       trackId: eventJsonData<number>(data, 1),
       proposal: eventJsonData(data, 2),
     }));
+
+    static Cancelled = this.Method('Cancelled', data => ({
+      index: eventJsonData<number>(data, 0),
+      tally: eventJsonData(data, 1),
+    }));
   };
 
   static UniqueScheduler = schedulerSection('uniqueScheduler');
modifiedtests/src/util/playgrounds/unique.tsdiffbeforeafterboth
--- a/tests/src/util/playgrounds/unique.ts
+++ b/tests/src/util/playgrounds/unique.ts
@@ -44,15 +44,11 @@
   MoonbeamAssetInfo,
   DemocracyStandardAccountVote,
   IEthCrossAccountId,
-  CollectionFlag,
   IPhasicEvent,
-  DemocracySplitAccount,
 } from './types';
 import {RuntimeDispatchInfo} from '@polkadot/types/interfaces';
 import type {Vec} from '@polkadot/types-codec';
-import {FrameSupportPreimagesBounded, FrameSupportScheduleDispatchTime, FrameSystemEventRecord, PalletBalancesIdAmount, PalletDemocracyConviction, PalletDemocracyVoteAccountVote} from '@polkadot/types/lookup';
-import {arrayUnzip} from '@polkadot/util';
-import {Event} from './unique.dev';
+import {FrameSystemEventRecord, PalletDemocracyConviction} from '@polkadot/types/lookup';
 
 export class CrossAccountId {
   Substrate!: TSubstrateAccount;