difftreelog
fix move RMRK needed parts of deprecated helpers
in: master
20 files changed
tests/src/rmrk/acceptNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/acceptNft.test.ts
+++ b/tests/src/rmrk/acceptNft.test.ts
@@ -7,8 +7,7 @@
acceptNft,
} from './util/tx';
import {NftIdTuple} from './util/fetch';
-import {isNftChildOfAnother, expectTxFailure} from './util/helpers';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
+import {isNftChildOfAnother, expectTxFailure, requirePallets, Pallets} from './util/helpers';
describe('integration test: accept NFT', () => {
let api: any;
tests/src/rmrk/addResource.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/addResource.test.ts
+++ b/tests/src/rmrk/addResource.test.ts
@@ -1,7 +1,7 @@
import {expect} from 'chai';
import {getApiConnection} from '../substrate/substrate-api';
import {NftIdTuple} from './util/fetch';
-import {expectTxFailure, getResourceById} from './util/helpers';
+import {expectTxFailure, getResourceById, requirePallets, Pallets} from './util/helpers';
import {
addNftBasicResource,
acceptNftResource,
@@ -12,7 +12,6 @@
addNftComposableResource,
} from './util/tx';
import {RmrkTraitsResourceResourceInfo as ResourceInfo} from '@polkadot/types/lookup';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
describe('integration test: add NFT resource', () => {
const Alice = '//Alice';
tests/src/rmrk/addTheme.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/addTheme.test.ts
+++ b/tests/src/rmrk/addTheme.test.ts
@@ -1,9 +1,8 @@
import {expect} from 'chai';
import {getApiConnection} from '../substrate/substrate-api';
import {createBase, addTheme} from './util/tx';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {getThemeNames} from './util/fetch';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
describe('integration test: add Theme to Base', () => {
let api: any;
tests/src/rmrk/burnNft.test.tsdiffbeforeafterboth1import {getApiConnection} from '../substrate/substrate-api';2import {expectTxFailure} from './util/helpers';3import {NftIdTuple, getChildren} from './util/fetch';4import {burnNft, createCollection, sendNft, mintNft} from './util/tx';56import chai from 'chai';7import chaiAsPromised from 'chai-as-promised';8import {requirePallets, Pallets} from '../deprecated-helpers/helpers';910chai.use(chaiAsPromised);11const expect = chai.expect;1213describe('integration test: burn nft', () => {14 const Alice = '//Alice';15 const Bob = '//Bob';1617 let api: any;18 before(async function() {19 api = await getApiConnection();20 await requirePallets(this, [Pallets.RmrkCore]);21 });222324 it('burn nft', async () => {25 await createCollection(26 api,27 Alice,28 'test-metadata',29 null,30 'test-symbol',31 ).then(async (collectionId) => {32 const nftId = await mintNft(33 api,34 Alice,35 Alice,36 collectionId,37 'nft-metadata',38 );39 await burnNft(api, Alice, collectionId, nftId);40 });41 });4243 it('burn nft with children', async () => {44 const collectionId = await createCollection(45 api,46 Alice,47 'test-metadata',48 null,49 'test-symbol',50 );5152 const parentNftId = await mintNft(53 api,54 Alice,55 Alice,56 collectionId,57 'nft-metadata',58 );5960 const childNftId = await mintNft(61 api,62 Alice,63 Alice,64 collectionId,65 'nft-metadata',66 );6768 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];6970 await sendNft(api, 'sent', Alice, collectionId, childNftId, newOwnerNFT);7172 const childrenBefore = await getChildren(api, collectionId, parentNftId);73 expect(childrenBefore.length === 1, 'Error: parent NFT should have children')74 .to.be.true;7576 const child = childrenBefore[0];77 expect(child.collectionId.eq(collectionId), 'Error: invalid child collection Id')78 .to.be.true;7980 expect(child.nftId.eq(childNftId), 'Error: invalid child NFT Id')81 .to.be.true;8283 await burnNft(api, Alice, collectionId, parentNftId);8485 const childrenAfter = await getChildren(api, collectionId, parentNftId);8687 expect(childrenAfter.length === 0, 'Error: children should be burned').to.be.true;88 });8990 it('burn child nft', async () => {91 const collectionId = await createCollection(92 api,93 Alice,94 'test-metadata',95 null,96 'test-symbol',97 );9899 const parentNftId = await mintNft(100 api,101 Alice,102 Alice,103 collectionId,104 'nft-metadata',105 );106107 const childNftId = await mintNft(108 api,109 Alice,110 Alice,111 collectionId,112 'nft-metadata',113 );114115 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];116117 await sendNft(api, 'sent', Alice, collectionId, childNftId, newOwnerNFT);118119 const childrenBefore = await getChildren(api, collectionId, parentNftId);120 expect(childrenBefore.length === 1, 'Error: parent NFT should have children')121 .to.be.true;122123 const child = childrenBefore[0];124 expect(child.collectionId.eq(collectionId), 'Error: invalid child collection Id')125 .to.be.true;126127 expect(child.nftId.eq(childNftId), 'Error: invalid child NFT Id')128 .to.be.true;129130 await burnNft(api, Alice, collectionId, childNftId);131132 const childrenAfter = await getChildren(api, collectionId, parentNftId);133134 expect(childrenAfter.length === 0, 'Error: children should be burned').to.be.true;135 });136137 it('[negative] burn non-existing NFT', async () => {138 await createCollection(139 api,140 Alice,141 'test-metadata',142 null,143 'test-symbol',144 ).then(async (collectionId) => {145 const tx = burnNft(api, Alice, collectionId, 99999);146 await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);147 });148 });149150 it('[negative] burn not an owner NFT user', async () => {151 await createCollection(152 api,153 Alice,154 'test-metadata',155 null,156 'test-symbol',157 ).then(async (collectionId) => {158 const nftId = await mintNft(159 api,160 Alice,161 Alice,162 collectionId,163 'nft-metadata',164 );165 const tx = burnNft(api, Bob, collectionId, nftId);166 await expectTxFailure(/rmrkCore\.NoPermission/, tx);167 });168 });169170 after(() => {171 api.disconnect();172 });173});1import {getApiConnection} from '../substrate/substrate-api';2import {expectTxFailure, requirePallets, Pallets} from './util/helpers';3import {NftIdTuple, getChildren} from './util/fetch';4import {burnNft, createCollection, sendNft, mintNft} from './util/tx';56import chai from 'chai';7import chaiAsPromised from 'chai-as-promised';89chai.use(chaiAsPromised);10const expect = chai.expect;1112describe('integration test: burn nft', () => {13 const Alice = '//Alice';14 const Bob = '//Bob';1516 let api: any;17 before(async function() {18 api = await getApiConnection();19 await requirePallets(this, [Pallets.RmrkCore]);20 });212223 it('burn nft', async () => {24 await createCollection(25 api,26 Alice,27 'test-metadata',28 null,29 'test-symbol',30 ).then(async (collectionId) => {31 const nftId = await mintNft(32 api,33 Alice,34 Alice,35 collectionId,36 'nft-metadata',37 );38 await burnNft(api, Alice, collectionId, nftId);39 });40 });4142 it('burn nft with children', async () => {43 const collectionId = await createCollection(44 api,45 Alice,46 'test-metadata',47 null,48 'test-symbol',49 );5051 const parentNftId = await mintNft(52 api,53 Alice,54 Alice,55 collectionId,56 'nft-metadata',57 );5859 const childNftId = await mintNft(60 api,61 Alice,62 Alice,63 collectionId,64 'nft-metadata',65 );6667 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];6869 await sendNft(api, 'sent', Alice, collectionId, childNftId, newOwnerNFT);7071 const childrenBefore = await getChildren(api, collectionId, parentNftId);72 expect(childrenBefore.length === 1, 'Error: parent NFT should have children')73 .to.be.true;7475 const child = childrenBefore[0];76 expect(child.collectionId.eq(collectionId), 'Error: invalid child collection Id')77 .to.be.true;7879 expect(child.nftId.eq(childNftId), 'Error: invalid child NFT Id')80 .to.be.true;8182 await burnNft(api, Alice, collectionId, parentNftId);8384 const childrenAfter = await getChildren(api, collectionId, parentNftId);8586 expect(childrenAfter.length === 0, 'Error: children should be burned').to.be.true;87 });8889 it('burn child nft', async () => {90 const collectionId = await createCollection(91 api,92 Alice,93 'test-metadata',94 null,95 'test-symbol',96 );9798 const parentNftId = await mintNft(99 api,100 Alice,101 Alice,102 collectionId,103 'nft-metadata',104 );105106 const childNftId = await mintNft(107 api,108 Alice,109 Alice,110 collectionId,111 'nft-metadata',112 );113114 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];115116 await sendNft(api, 'sent', Alice, collectionId, childNftId, newOwnerNFT);117118 const childrenBefore = await getChildren(api, collectionId, parentNftId);119 expect(childrenBefore.length === 1, 'Error: parent NFT should have children')120 .to.be.true;121122 const child = childrenBefore[0];123 expect(child.collectionId.eq(collectionId), 'Error: invalid child collection Id')124 .to.be.true;125126 expect(child.nftId.eq(childNftId), 'Error: invalid child NFT Id')127 .to.be.true;128129 await burnNft(api, Alice, collectionId, childNftId);130131 const childrenAfter = await getChildren(api, collectionId, parentNftId);132133 expect(childrenAfter.length === 0, 'Error: children should be burned').to.be.true;134 });135136 it('[negative] burn non-existing NFT', async () => {137 await createCollection(138 api,139 Alice,140 'test-metadata',141 null,142 'test-symbol',143 ).then(async (collectionId) => {144 const tx = burnNft(api, Alice, collectionId, 99999);145 await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);146 });147 });148149 it('[negative] burn not an owner NFT user', async () => {150 await createCollection(151 api,152 Alice,153 'test-metadata',154 null,155 'test-symbol',156 ).then(async (collectionId) => {157 const nftId = await mintNft(158 api,159 Alice,160 Alice,161 collectionId,162 'nft-metadata',163 );164 const tx = burnNft(api, Bob, collectionId, nftId);165 await expectTxFailure(/rmrkCore\.NoPermission/, tx);166 });167 });168169 after(() => {170 api.disconnect();171 });172});tests/src/rmrk/changeCollectionIssuer.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/changeCollectionIssuer.test.ts
+++ b/tests/src/rmrk/changeCollectionIssuer.test.ts
@@ -1,6 +1,5 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {
changeIssuer,
createCollection,
tests/src/rmrk/createBase.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/createBase.test.ts
+++ b/tests/src/rmrk/createBase.test.ts
@@ -1,5 +1,5 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
+import {requirePallets, Pallets} from './util/helpers';
import {createCollection, createBase} from './util/tx';
describe('integration test: create new Base', () => {
tests/src/rmrk/createCollection.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/createCollection.test.ts
+++ b/tests/src/rmrk/createCollection.test.ts
@@ -1,5 +1,5 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
+import {requirePallets, Pallets} from './util/helpers';
import {createCollection} from './util/tx';
describe('Integration test: create new collection', () => {
tests/src/rmrk/deleteCollection.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/deleteCollection.test.ts
+++ b/tests/src/rmrk/deleteCollection.test.ts
@@ -1,6 +1,5 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {createCollection, deleteCollection} from './util/tx';
describe('integration test: delete collection', () => {
tests/src/rmrk/equipNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/equipNft.test.ts
+++ b/tests/src/rmrk/equipNft.test.ts
@@ -1,9 +1,8 @@
import {ApiPromise} from '@polkadot/api';
import {expect} from 'chai';
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
import {getNft, getParts, NftIdTuple} from './util/fetch';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {
addNftComposableResource,
addNftSlotResource,
tests/src/rmrk/getOwnedNfts.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/getOwnedNfts.test.ts
+++ b/tests/src/rmrk/getOwnedNfts.test.ts
@@ -1,6 +1,6 @@
import {expect} from 'chai';
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
+import {requirePallets, Pallets} from './util/helpers';
import {getOwnedNfts} from './util/fetch';
import {mintNft, createCollection} from './util/tx';
tests/src/rmrk/lockCollection.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/lockCollection.test.ts
+++ b/tests/src/rmrk/lockCollection.test.ts
@@ -1,6 +1,5 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {createCollection, lockCollection, mintNft} from './util/tx';
describe('integration test: lock collection', () => {
tests/src/rmrk/mintNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/mintNft.test.ts
+++ b/tests/src/rmrk/mintNft.test.ts
@@ -1,8 +1,7 @@
import {expect} from 'chai';
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
import {getNft} from './util/fetch';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {createCollection, mintNft} from './util/tx';
describe('integration test: mint new NFT', () => {
tests/src/rmrk/rejectNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/rejectNft.test.ts
+++ b/tests/src/rmrk/rejectNft.test.ts
@@ -7,8 +7,7 @@
rejectNft,
} from './util/tx';
import {getChildren, NftIdTuple} from './util/fetch';
-import {isNftChildOfAnother, expectTxFailure} from './util/helpers';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
+import {isNftChildOfAnother, expectTxFailure, requirePallets, Pallets} from './util/helpers';
describe('integration test: reject NFT', () => {
let api: any;
tests/src/rmrk/removeResource.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/removeResource.test.ts
+++ b/tests/src/rmrk/removeResource.test.ts
@@ -1,9 +1,8 @@
import {expect} from 'chai';
import privateKey from '../substrate/privateKey';
import {executeTransaction, getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
import {getNft, NftIdTuple} from './util/fetch';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {
acceptNft, acceptResourceRemoval, addNftBasicResource,
createBase,
tests/src/rmrk/sendNft.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/sendNft.test.ts
+++ b/tests/src/rmrk/sendNft.test.ts
@@ -2,8 +2,7 @@
import {getApiConnection} from '../substrate/substrate-api';
import {createCollection, mintNft, sendNft} from './util/tx';
import {NftIdTuple} from './util/fetch';
-import {isNftChildOfAnother, expectTxFailure} from './util/helpers';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
+import {isNftChildOfAnother, expectTxFailure, requirePallets, Pallets} from './util/helpers';
describe('integration test: send NFT', () => {
let api: any;
tests/src/rmrk/setCollectionProperty.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/setCollectionProperty.test.ts
+++ b/tests/src/rmrk/setCollectionProperty.test.ts
@@ -1,6 +1,5 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {createCollection, setPropertyCollection} from './util/tx';
describe('integration test: set collection property', () => {
tests/src/rmrk/setEquippableList.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/setEquippableList.test.ts
+++ b/tests/src/rmrk/setEquippableList.test.ts
@@ -1,6 +1,5 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {createCollection, createBase, setEquippableList} from './util/tx';
describe("integration test: set slot's Equippable List", () => {
tests/src/rmrk/setNftProperty.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/setNftProperty.test.ts
+++ b/tests/src/rmrk/setNftProperty.test.ts
@@ -1,7 +1,6 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
import {NftIdTuple} from './util/fetch';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {createCollection, mintNft, sendNft, setNftProperty} from './util/tx';
describe('integration test: set NFT property', () => {
tests/src/rmrk/setResourcePriorities.test.tsdiffbeforeafterboth--- a/tests/src/rmrk/setResourcePriorities.test.ts
+++ b/tests/src/rmrk/setResourcePriorities.test.ts
@@ -1,6 +1,5 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {mintNft, createCollection, setResourcePriorities} from './util/tx';
describe('integration test: set NFT resource priorities', () => {
tests/src/rmrk/util/helpers.tsdiffbeforeafterboth--- a/tests/src/rmrk/util/helpers.ts
+++ b/tests/src/rmrk/util/helpers.ts
@@ -10,6 +10,8 @@
import {NftIdTuple, getChildren, getOwnedNfts, getCollectionProperties, getNftProperties, getResources} from './fetch';
import chaiAsPromised from 'chai-as-promised';
import chai from 'chai';
+import {getApiConnection} from '../../substrate/substrate-api';
+import {Context} from 'mocha';
chai.use(chaiAsPromised);
const expect = chai.expect;
@@ -19,6 +21,45 @@
successData: T | null;
}
+export enum Pallets {
+ Inflation = 'inflation',
+ RmrkCore = 'rmrkcore',
+ RmrkEquip = 'rmrkequip',
+ ReFungible = 'refungible',
+ Fungible = 'fungible',
+ NFT = 'nonfungible',
+ Scheduler = 'scheduler',
+ AppPromotion = 'apppromotion',
+}
+
+let modulesNames: any;
+export function getModuleNames(api: ApiPromise): string[] {
+ if (typeof modulesNames === 'undefined')
+ modulesNames = api.runtimeMetadata.asLatest.pallets.map(m => m.name.toString().toLowerCase());
+ return modulesNames;
+}
+
+export async function missingRequiredPallets(requiredPallets: string[]): Promise<string[]> {
+ const api = await getApiConnection();
+ const pallets = getModuleNames(api);
+
+ return requiredPallets.filter(p => !pallets.includes(p));
+}
+
+export async function requirePallets(mocha: Context, requiredPallets: string[]) {
+ const missingPallets = await missingRequiredPallets(requiredPallets);
+
+ if (missingPallets.length > 0) {
+ const skippingTestMsg = `\tSkipping test "${mocha.test?.title}".`;
+ const missingPalletsMsg = `\tThe following pallets are missing:\n\t- ${missingPallets.join('\n\t- ')}`;
+ const skipMsg = `${skippingTestMsg}\n${missingPalletsMsg}`;
+
+ console.error('\x1b[38:5:208m%s\x1b[0m', skipMsg);
+
+ mocha.skip();
+ }
+}
+
export function makeNftOwner(api: ApiPromise, owner: string | NftIdTuple): NftOwner {
const isNftSending = (typeof owner !== 'string');