From b544464f4ffd7aec03f96b140223b7881a54d962 Mon Sep 17 00:00:00 2001 From: Daniel Shiposha Date: Wed, 03 Aug 2022 07:25:32 +0000 Subject: [PATCH] feat: tests requirePallets --- --- a/tests/src/rmrk/acceptNft.test.ts +++ b/tests/src/rmrk/acceptNft.test.ts @@ -8,13 +8,13 @@ } from './util/tx'; import {NftIdTuple} from './util/fetch'; import {isNftChildOfAnother, expectTxFailure} from './util/helpers'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; describe('integration test: accept NFT', () => { let api: any; before(async function() { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); --- a/tests/src/rmrk/addResource.test.ts +++ b/tests/src/rmrk/addResource.test.ts @@ -12,7 +12,7 @@ addNftComposableResource, } from './util/tx'; import {RmrkTraitsResourceResourceInfo as ResourceInfo} from '@polkadot/types/lookup'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; describe('integration test: add NFT resource', () => { const Alice = '//Alice'; @@ -27,7 +27,7 @@ let api: any; before(async function() { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); it('add resource', async () => { --- a/tests/src/rmrk/addTheme.test.ts +++ b/tests/src/rmrk/addTheme.test.ts @@ -3,13 +3,13 @@ import {createBase, addTheme} from './util/tx'; import {expectTxFailure} from './util/helpers'; import {getThemeNames} from './util/fetch'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; describe('integration test: add Theme to Base', () => { let api: any; before(async function() { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkEquip]); }); const alice = '//Alice'; --- a/tests/src/rmrk/burnNft.test.ts +++ b/tests/src/rmrk/burnNft.test.ts @@ -5,7 +5,7 @@ import chai from 'chai'; import chaiAsPromised from 'chai-as-promised'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; chai.use(chaiAsPromised); const expect = chai.expect; @@ -17,7 +17,7 @@ let api: any; before(async function() { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); --- a/tests/src/rmrk/changeCollectionIssuer.test.ts +++ b/tests/src/rmrk/changeCollectionIssuer.test.ts @@ -1,5 +1,5 @@ import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {expectTxFailure} from './util/helpers'; import { changeIssuer, @@ -13,7 +13,7 @@ let api: any; before(async function() { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); --- a/tests/src/rmrk/createBase.test.ts +++ b/tests/src/rmrk/createBase.test.ts @@ -1,12 +1,12 @@ import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {createCollection, createBase} from './util/tx'; describe('integration test: create new Base', () => { let api: any; before(async function() { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore, Pallets.RmrkEquip]); }); const alice = '//Alice'; --- a/tests/src/rmrk/createCollection.test.ts +++ b/tests/src/rmrk/createCollection.test.ts @@ -1,12 +1,12 @@ import {getApiConnection} from '../substrate/substrate-api'; -import {getModuleNames, Pallets} from '../util/helpers'; +import {requirePallets, Pallets} from '../util/helpers'; import {createCollection} from './util/tx'; describe('Integration test: create new collection', () => { let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); --- a/tests/src/rmrk/deleteCollection.test.ts +++ b/tests/src/rmrk/deleteCollection.test.ts @@ -1,5 +1,5 @@ import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {expectTxFailure} from './util/helpers'; import {createCollection, deleteCollection} from './util/tx'; @@ -7,7 +7,7 @@ let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); const Alice = '//Alice'; --- a/tests/src/rmrk/equipNft.test.ts +++ b/tests/src/rmrk/equipNft.test.ts @@ -1,7 +1,7 @@ import {ApiPromise} from '@polkadot/api'; import {expect} from 'chai'; import {getApiConnection} from '../substrate/substrate-api'; -import {getModuleNames, Pallets} from '../util/helpers'; +import {requirePallets, Pallets} from '../util/helpers'; import {getNft, getParts, NftIdTuple} from './util/fetch'; import {expectTxFailure} from './util/helpers'; import { @@ -126,7 +126,7 @@ before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore, Pallets.RmrkEquip]); }); it('equip nft', async () => { --- 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 { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {getOwnedNfts} from './util/fetch'; import {mintNft, createCollection} from './util/tx'; @@ -9,7 +9,7 @@ before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); --- a/tests/src/rmrk/lockCollection.test.ts +++ b/tests/src/rmrk/lockCollection.test.ts @@ -1,5 +1,5 @@ import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {expectTxFailure} from './util/helpers'; import {createCollection, lockCollection, mintNft} from './util/tx'; @@ -11,7 +11,7 @@ let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); it('lock collection', async () => { --- a/tests/src/rmrk/mintNft.test.ts +++ b/tests/src/rmrk/mintNft.test.ts @@ -1,6 +1,6 @@ import {expect} from 'chai'; import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {getNft} from './util/fetch'; import {expectTxFailure} from './util/helpers'; import {createCollection, mintNft} from './util/tx'; @@ -10,7 +10,7 @@ before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); --- a/tests/src/rmrk/rejectNft.test.ts +++ b/tests/src/rmrk/rejectNft.test.ts @@ -8,13 +8,13 @@ } from './util/tx'; import {getChildren, NftIdTuple} from './util/fetch'; import {isNftChildOfAnother, expectTxFailure} from './util/helpers'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; describe('integration test: reject NFT', () => { let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); --- a/tests/src/rmrk/removeResource.test.ts +++ b/tests/src/rmrk/removeResource.test.ts @@ -1,7 +1,7 @@ import {expect} from 'chai'; import privateKey from '../substrate/privateKey'; import {executeTransaction, getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {getNft, NftIdTuple} from './util/fetch'; import {expectTxFailure} from './util/helpers'; import { @@ -20,7 +20,7 @@ before(async function() { api = await getApiConnection(); ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format; - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); const Alice = '//Alice'; --- a/tests/src/rmrk/rmrkIsolation.test.ts +++ b/tests/src/rmrk/rmrkIsolation.test.ts @@ -6,7 +6,7 @@ getCreateCollectionResult, getDetailedCollectionInfo, getGenericResult, - getModuleNames, + requirePallets, normalizeAccountId, Pallets, } from '../util/helpers'; @@ -64,7 +64,7 @@ before(async function() { await usingApi(async (api, privateKeyWrapper) => { alice = privateKeyWrapper('//Alice'); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); }); --- a/tests/src/rmrk/sendNft.test.ts +++ b/tests/src/rmrk/sendNft.test.ts @@ -3,13 +3,13 @@ import {createCollection, mintNft, sendNft} from './util/tx'; import {NftIdTuple} from './util/fetch'; import {isNftChildOfAnother, expectTxFailure} from './util/helpers'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; describe('integration test: send NFT', () => { let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); const maxNftId = 0xFFFFFFFF; --- a/tests/src/rmrk/setCollectionProperty.test.ts +++ b/tests/src/rmrk/setCollectionProperty.test.ts @@ -1,5 +1,5 @@ import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {expectTxFailure} from './util/helpers'; import {createCollection, setPropertyCollection} from './util/tx'; @@ -10,7 +10,7 @@ let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); it('set collection property', async () => { --- a/tests/src/rmrk/setEquippableList.test.ts +++ b/tests/src/rmrk/setEquippableList.test.ts @@ -1,5 +1,5 @@ import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {expectTxFailure} from './util/helpers'; import {createCollection, createBase, setEquippableList} from './util/tx'; @@ -7,7 +7,7 @@ let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); const alice = '//Alice'; --- a/tests/src/rmrk/setNftProperty.test.ts +++ b/tests/src/rmrk/setNftProperty.test.ts @@ -1,5 +1,5 @@ import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {NftIdTuple} from './util/fetch'; import {expectTxFailure} from './util/helpers'; import {createCollection, mintNft, sendNft, setNftProperty} from './util/tx'; @@ -8,7 +8,7 @@ let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); const alice = '//Alice'; --- a/tests/src/rmrk/setResourcePriorities.test.ts +++ b/tests/src/rmrk/setResourcePriorities.test.ts @@ -1,5 +1,5 @@ import {getApiConnection} from '../substrate/substrate-api'; -import { getModuleNames, Pallets } from '../util/helpers'; +import { requirePallets, Pallets } from '../util/helpers'; import {expectTxFailure} from './util/helpers'; import {mintNft, createCollection, setResourcePriorities} from './util/tx'; @@ -7,7 +7,7 @@ let api: any; before(async function () { api = await getApiConnection(); - if (!getModuleNames(api).includes(Pallets.RmrkCore)) this.skip(); + requirePallets(this, api, [Pallets.RmrkCore]); }); const alice = '//Alice'; --- a/tests/src/util/helpers.ts +++ b/tests/src/util/helpers.ts @@ -28,6 +28,7 @@ import {hexToStr, strToUTF16, utf16ToStr} from './util'; import {UpDataStructsRpcCollection, UpDataStructsCreateItemData, UpDataStructsProperty} from '@polkadot/types/lookup'; import {UpDataStructsTokenChild} from '../interfaces'; +import { Context } from 'mocha'; chai.use(chaiAsPromised); const expect = chai.expect; @@ -42,6 +43,7 @@ export enum Pallets { Inflation = 'inflation', RmrkCore = 'rmrkcore', + RmrkEquip = 'rmrkequip', ReFungible = 'refungible', Fungible = 'fungible', NFT = 'nonfungible', @@ -70,6 +72,16 @@ return modulesNames; } +export function requirePallets(mocha: Context, api: ApiPromise, requiredPallets: string[]) { + const pallets = getModuleNames(api); + + const isAllPalletsPresent = requiredPallets.every(p => pallets.includes(p)); + + if (!isAllPalletsPresent) { + mocha.skip(); + } +} + export function normalizeAccountId(input: string | AccountId | CrossAccountId | IKeyringPair): CrossAccountId { if (typeof input === 'string') { if (input.length >= 47) { -- gitstuff