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.tsdiffbeforeafterboth--- a/tests/src/rmrk/burnNft.test.ts
+++ b/tests/src/rmrk/burnNft.test.ts
@@ -1,11 +1,10 @@
import {getApiConnection} from '../substrate/substrate-api';
-import {expectTxFailure} from './util/helpers';
+import {expectTxFailure, requirePallets, Pallets} from './util/helpers';
import {NftIdTuple, getChildren} from './util/fetch';
import {burnNft, createCollection, sendNft, mintNft} from './util/tx';
import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
-import {requirePallets, Pallets} from '../deprecated-helpers/helpers';
chai.use(chaiAsPromised);
const expect = chai.expect;
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.tsdiffbeforeafterboth1import {expect} from 'chai';2import {getApiConnection} from '../substrate/substrate-api';3import {createCollection, mintNft, sendNft} from './util/tx';4import {NftIdTuple} from './util/fetch';5import {isNftChildOfAnother, expectTxFailure} from './util/helpers';6import {requirePallets, Pallets} from '../deprecated-helpers/helpers';78describe('integration test: send NFT', () => {9 let api: any;10 before(async function () {11 api = await getApiConnection();12 await requirePallets(this, [Pallets.RmrkCore]);13 });1415 const maxNftId = 0xFFFFFFFF;1617 const alice = '//Alice';18 const bob = '//Bob';1920 const createTestCollection = async (issuerUri: string) => {21 return await createCollection(22 api,23 issuerUri,24 'nft-collection-metadata',25 null,26 'nft-collection',27 );28 };293031 it('send NFT to another user', async () => {32 const originalOwnerUri = alice;33 const newOwnerUri = bob;3435 const collectionId = await createTestCollection(alice);3637 const nftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'nft-metadata');3839 await sendNft(api, 'sent', originalOwnerUri, collectionId, nftId, newOwnerUri);40 });4142 it('[negative] unable to send non-existing NFT', async () => {43 const originalOwnerUri = alice;44 const newOwnerUri = bob;4546 const collectionId = 0;47 const tx = sendNft(api, 'sent', originalOwnerUri, collectionId, maxNftId, newOwnerUri);4849 await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);50 });5152 it('[negative] unable to send NFT by a not-an-owner', async () => {53 const originalOwnerUri = alice;54 const newOwnerUri = bob;5556 const collectionId = await createTestCollection(alice);5758 const nftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'nft-metadata');5960 const tx = sendNft(api, 'sent', newOwnerUri, collectionId, nftId, newOwnerUri);61 await expectTxFailure(/rmrkCore\.NoPermission/, tx);62 });6364 it('send NFT to another NFT (same owner)', async () => {65 const originalOwnerUri = alice;6667 const collectionId = await createTestCollection(alice);6869 const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');70 const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');7172 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];7374 await sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);7576 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);77 expect(isChild).to.be.true;78 });7980 it('[negative] send non-existing NFT to another NFT', async () => {81 const originalOwnerUri = alice;8283 const collectionId = await createTestCollection(alice);8485 const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');86 const childNftId = maxNftId;8788 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];8990 const tx = sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);9192 await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);9394 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);95 expect(isChild).to.be.false;96 });9798 it('send NFT to another NFT (by not-an-owner)', async () => {99 const originalOwnerUri = alice;100101 const collectionId = await createTestCollection(alice);102103 const author = alice;104 const attacker = bob;105106 const parentNftId = await mintNft(api, author, originalOwnerUri, collectionId, 'parent-nft-metadata');107 const childNftId = await mintNft(api, author, originalOwnerUri, collectionId, 'child-nft-metadata');108109 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];110111 const tx = sendNft(api, 'sent', attacker, collectionId, childNftId, newOwnerNFT);112113 await expectTxFailure(/rmrkCore\.NoPermission/, tx);114115 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);116 expect(isChild).to.be.false;117 });118119 it('[negative] send NFT to non-existing NFT', async () => {120 const originalOwnerUri = alice;121122 const collectionId = await createTestCollection(alice);123124 const parentNftId = maxNftId;125 const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');126127 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];128129 const tx = sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);130131 await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);132133 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);134 expect(isChild).to.be.false;135 });136137 it('send NFT to another NFT owned by another user', async () => {138 const ownerAlice = alice;139 const ownerBob = bob;140141 const aliceCollectionId = await createTestCollection(alice);142 const bobCollectionId = await createTestCollection(bob);143144 const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');145 const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');146147 const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];148149 await sendNft(api, 'pending', bob, bobCollectionId, childNftId, newOwnerNFT);150 });151152 it('[negative] unable to send NFT to itself', async () => {153 const nftOwner = alice;154 const collectionId = await createTestCollection(alice);155156 const nftId = await mintNft(api, alice, nftOwner, collectionId, 'ouroboros-nft-metadata');157158 const newOwnerNFT: NftIdTuple = [collectionId, nftId];159160 const tx = sendNft(api, 'sent', alice, collectionId, nftId, newOwnerNFT);161162 await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);163164 const isChild = await isNftChildOfAnother(api, collectionId, nftId, newOwnerNFT);165 expect(isChild).to.be.false;166 });167168 it('[negative] unable to send NFT to child NFT', async () => {169 const originalOwnerUri = alice;170171 const collectionId = await createTestCollection(alice);172173 const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');174 const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');175176 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];177178 await sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);179180 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);181 expect(isChild).to.be.true;182183 const descendentOwner: NftIdTuple = [collectionId, childNftId];184 const tx = sendNft(api, 'sent', alice, collectionId, parentNftId, descendentOwner);185186 await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);187 const isOuroboros = await isNftChildOfAnother(api, collectionId, parentNftId, descendentOwner);188 expect(isOuroboros).to.be.false;189 });190191 it('[negative] unable to send NFT to descendent NFT', async () => {192 const originalOwnerUri = alice;193194 const collectionId = await createTestCollection(alice);195196 const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');197 const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');198 const grandsonNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'grandson-nft-metadata');199200 const ownerParentNFT: NftIdTuple = [collectionId, parentNftId];201202 await sendNft(api, 'sent', alice, collectionId, childNftId, ownerParentNFT);203204 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, ownerParentNFT);205 expect(isChild).to.be.true;206207 const ownerChildNFT: NftIdTuple = [collectionId, childNftId];208 await sendNft(api, 'sent', alice, collectionId, grandsonNftId, ownerChildNFT);209210 const isGrandson = await isNftChildOfAnother(api, collectionId, grandsonNftId, ownerChildNFT);211 expect(isGrandson).to.be.true;212213 const ownerGrandsonNFT: NftIdTuple = [collectionId, grandsonNftId];214 const tx = sendNft(api, 'sent', alice, collectionId, parentNftId, ownerGrandsonNFT);215216 await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);217 const isOuroboros = await isNftChildOfAnother(api, collectionId, parentNftId, ownerGrandsonNFT);218 expect(isOuroboros).to.be.false;219 });220221 it('send nested NFT to another user', async () => {222 const originalOwner = alice;223 const newOwner = bob;224225 const collectionId = await createTestCollection(alice);226227 const parentNftId = await mintNft(api, alice, originalOwner, collectionId, 'parent-nft-metadata');228 const childNftId = await mintNft(api, alice, originalOwner, collectionId, 'child-nft-metadata');229230 const parentNftTuple: NftIdTuple = [collectionId, parentNftId];231232 await sendNft(api, 'sent', originalOwner, collectionId, childNftId, parentNftTuple);233234 await sendNft(api, 'sent', originalOwner, collectionId, childNftId, newOwner);235 });236237 it('[negative] send nested NFT to another user (by a not-root-owner)', async () => {238 const originalOwner = alice;239 const newOwner = bob;240241 const collectionId = await createTestCollection(alice);242243 const parentNftId = await mintNft(api, alice, originalOwner, collectionId, 'parent-nft-metadata');244 const childNftId = await mintNft(api, alice, originalOwner, collectionId, 'child-nft-metadata');245246 const parentNftTuple: NftIdTuple = [collectionId, parentNftId];247248 await sendNft(api, 'sent', originalOwner, collectionId, childNftId, parentNftTuple);249250 const tx = sendNft(api, 'sent', newOwner, collectionId, childNftId, newOwner);251252 await expectTxFailure(/rmrkCore\.NoPermission/, tx);253 });254255 after(() => { api.disconnect(); });256});1import {expect} from 'chai';2import {getApiConnection} from '../substrate/substrate-api';3import {createCollection, mintNft, sendNft} from './util/tx';4import {NftIdTuple} from './util/fetch';5import {isNftChildOfAnother, expectTxFailure, requirePallets, Pallets} from './util/helpers';67describe('integration test: send NFT', () => {8 let api: any;9 before(async function () {10 api = await getApiConnection();11 await requirePallets(this, [Pallets.RmrkCore]);12 });1314 const maxNftId = 0xFFFFFFFF;1516 const alice = '//Alice';17 const bob = '//Bob';1819 const createTestCollection = async (issuerUri: string) => {20 return await createCollection(21 api,22 issuerUri,23 'nft-collection-metadata',24 null,25 'nft-collection',26 );27 };282930 it('send NFT to another user', async () => {31 const originalOwnerUri = alice;32 const newOwnerUri = bob;3334 const collectionId = await createTestCollection(alice);3536 const nftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'nft-metadata');3738 await sendNft(api, 'sent', originalOwnerUri, collectionId, nftId, newOwnerUri);39 });4041 it('[negative] unable to send non-existing NFT', async () => {42 const originalOwnerUri = alice;43 const newOwnerUri = bob;4445 const collectionId = 0;46 const tx = sendNft(api, 'sent', originalOwnerUri, collectionId, maxNftId, newOwnerUri);4748 await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);49 });5051 it('[negative] unable to send NFT by a not-an-owner', async () => {52 const originalOwnerUri = alice;53 const newOwnerUri = bob;5455 const collectionId = await createTestCollection(alice);5657 const nftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'nft-metadata');5859 const tx = sendNft(api, 'sent', newOwnerUri, collectionId, nftId, newOwnerUri);60 await expectTxFailure(/rmrkCore\.NoPermission/, tx);61 });6263 it('send NFT to another NFT (same owner)', async () => {64 const originalOwnerUri = alice;6566 const collectionId = await createTestCollection(alice);6768 const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');69 const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');7071 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];7273 await sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);7475 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);76 expect(isChild).to.be.true;77 });7879 it('[negative] send non-existing NFT to another NFT', async () => {80 const originalOwnerUri = alice;8182 const collectionId = await createTestCollection(alice);8384 const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');85 const childNftId = maxNftId;8687 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];8889 const tx = sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);9091 await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);9293 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);94 expect(isChild).to.be.false;95 });9697 it('send NFT to another NFT (by not-an-owner)', async () => {98 const originalOwnerUri = alice;99100 const collectionId = await createTestCollection(alice);101102 const author = alice;103 const attacker = bob;104105 const parentNftId = await mintNft(api, author, originalOwnerUri, collectionId, 'parent-nft-metadata');106 const childNftId = await mintNft(api, author, originalOwnerUri, collectionId, 'child-nft-metadata');107108 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];109110 const tx = sendNft(api, 'sent', attacker, collectionId, childNftId, newOwnerNFT);111112 await expectTxFailure(/rmrkCore\.NoPermission/, tx);113114 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);115 expect(isChild).to.be.false;116 });117118 it('[negative] send NFT to non-existing NFT', async () => {119 const originalOwnerUri = alice;120121 const collectionId = await createTestCollection(alice);122123 const parentNftId = maxNftId;124 const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');125126 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];127128 const tx = sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);129130 await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);131132 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);133 expect(isChild).to.be.false;134 });135136 it('send NFT to another NFT owned by another user', async () => {137 const ownerAlice = alice;138 const ownerBob = bob;139140 const aliceCollectionId = await createTestCollection(alice);141 const bobCollectionId = await createTestCollection(bob);142143 const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');144 const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');145146 const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];147148 await sendNft(api, 'pending', bob, bobCollectionId, childNftId, newOwnerNFT);149 });150151 it('[negative] unable to send NFT to itself', async () => {152 const nftOwner = alice;153 const collectionId = await createTestCollection(alice);154155 const nftId = await mintNft(api, alice, nftOwner, collectionId, 'ouroboros-nft-metadata');156157 const newOwnerNFT: NftIdTuple = [collectionId, nftId];158159 const tx = sendNft(api, 'sent', alice, collectionId, nftId, newOwnerNFT);160161 await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);162163 const isChild = await isNftChildOfAnother(api, collectionId, nftId, newOwnerNFT);164 expect(isChild).to.be.false;165 });166167 it('[negative] unable to send NFT to child NFT', async () => {168 const originalOwnerUri = alice;169170 const collectionId = await createTestCollection(alice);171172 const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');173 const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');174175 const newOwnerNFT: NftIdTuple = [collectionId, parentNftId];176177 await sendNft(api, 'sent', alice, collectionId, childNftId, newOwnerNFT);178179 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, newOwnerNFT);180 expect(isChild).to.be.true;181182 const descendentOwner: NftIdTuple = [collectionId, childNftId];183 const tx = sendNft(api, 'sent', alice, collectionId, parentNftId, descendentOwner);184185 await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);186 const isOuroboros = await isNftChildOfAnother(api, collectionId, parentNftId, descendentOwner);187 expect(isOuroboros).to.be.false;188 });189190 it('[negative] unable to send NFT to descendent NFT', async () => {191 const originalOwnerUri = alice;192193 const collectionId = await createTestCollection(alice);194195 const parentNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'parent-nft-metadata');196 const childNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'child-nft-metadata');197 const grandsonNftId = await mintNft(api, alice, originalOwnerUri, collectionId, 'grandson-nft-metadata');198199 const ownerParentNFT: NftIdTuple = [collectionId, parentNftId];200201 await sendNft(api, 'sent', alice, collectionId, childNftId, ownerParentNFT);202203 const isChild = await isNftChildOfAnother(api, collectionId, childNftId, ownerParentNFT);204 expect(isChild).to.be.true;205206 const ownerChildNFT: NftIdTuple = [collectionId, childNftId];207 await sendNft(api, 'sent', alice, collectionId, grandsonNftId, ownerChildNFT);208209 const isGrandson = await isNftChildOfAnother(api, collectionId, grandsonNftId, ownerChildNFT);210 expect(isGrandson).to.be.true;211212 const ownerGrandsonNFT: NftIdTuple = [collectionId, grandsonNftId];213 const tx = sendNft(api, 'sent', alice, collectionId, parentNftId, ownerGrandsonNFT);214215 await expectTxFailure(/rmrkCore\.CannotSendToDescendentOrSelf/, tx);216 const isOuroboros = await isNftChildOfAnother(api, collectionId, parentNftId, ownerGrandsonNFT);217 expect(isOuroboros).to.be.false;218 });219220 it('send nested NFT to another user', async () => {221 const originalOwner = alice;222 const newOwner = bob;223224 const collectionId = await createTestCollection(alice);225226 const parentNftId = await mintNft(api, alice, originalOwner, collectionId, 'parent-nft-metadata');227 const childNftId = await mintNft(api, alice, originalOwner, collectionId, 'child-nft-metadata');228229 const parentNftTuple: NftIdTuple = [collectionId, parentNftId];230231 await sendNft(api, 'sent', originalOwner, collectionId, childNftId, parentNftTuple);232233 await sendNft(api, 'sent', originalOwner, collectionId, childNftId, newOwner);234 });235236 it('[negative] send nested NFT to another user (by a not-root-owner)', async () => {237 const originalOwner = alice;238 const newOwner = bob;239240 const collectionId = await createTestCollection(alice);241242 const parentNftId = await mintNft(api, alice, originalOwner, collectionId, 'parent-nft-metadata');243 const childNftId = await mintNft(api, alice, originalOwner, collectionId, 'child-nft-metadata');244245 const parentNftTuple: NftIdTuple = [collectionId, parentNftId];246247 await sendNft(api, 'sent', originalOwner, collectionId, childNftId, parentNftTuple);248249 const tx = sendNft(api, 'sent', newOwner, collectionId, childNftId, newOwner);250251 await expectTxFailure(/rmrkCore\.NoPermission/, tx);252 });253254 after(() => { api.disconnect(); });255});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');