--- 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; --- 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'; --- 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; --- 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; --- 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, --- 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', () => { --- 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', () => { --- 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', () => { --- 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, --- 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'; --- 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', () => { --- 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', () => { --- 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; --- 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, --- 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; --- 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', () => { --- 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", () => { --- 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', () => { --- 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', () => { --- 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 { + 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');