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.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.tsdiffbeforeafterboth1import {ApiPromise} from '@polkadot/api';2import {3 RmrkTraitsNftAccountIdOrCollectionNftTuple as NftOwner,4 RmrkTraitsPropertyPropertyInfo as Property,5 RmrkTraitsResourceResourceInfo as ResourceInfo,6} from '@polkadot/types/lookup';7import type {EventRecord} from '@polkadot/types/interfaces';8import type {GenericEventData} from '@polkadot/types';9import privateKey from '../../substrate/privateKey';10import {NftIdTuple, getChildren, getOwnedNfts, getCollectionProperties, getNftProperties, getResources} from './fetch';11import chaiAsPromised from 'chai-as-promised';12import chai from 'chai';1314chai.use(chaiAsPromised);15const expect = chai.expect;1617interface TxResult<T> {18 success: boolean;19 successData: T | null;20}2122export function makeNftOwner(api: ApiPromise, owner: string | NftIdTuple): NftOwner {23 const isNftSending = (typeof owner !== 'string');2425 if (isNftSending) {26 return api.createType('RmrkTraitsNftAccountIdOrCollectionNftTuple', {27 'CollectionAndNftTuple': owner,28 });29 } else {30 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;31 return api.createType('RmrkTraitsNftAccountIdOrCollectionNftTuple', {32 AccountId: privateKey(owner, Number(ss58Format)).address,33 });34 }35}3637export async function isNftOwnedBy(38 api: ApiPromise,39 owner: string | NftIdTuple,40 collectionId: number,41 nftId: number,42): Promise<boolean> {43 if (typeof owner === 'string') {44 return (await getOwnedNfts(api, owner, collectionId))45 .find(ownedNftId => {46 return ownedNftId === nftId;47 }) !== undefined;48 } else {49 return (await getChildren(api, owner[0], owner[1]))50 .find(child => {51 return collectionId === child.collectionId.toNumber()52 && nftId === child.nftId.toNumber();53 }) !== undefined;54 }55}5657export function isPropertyExists(58 key: string,59 value: string,60 props: Property[],61): boolean {62 let isPropFound = false;63 for (let i = 0; i < props.length && !isPropFound; i++) {64 const fetchedProp = props[i];6566 isPropFound = fetchedProp.key.eq(key)67 && fetchedProp.value.eq(value);68 }6970 return isPropFound;71}7273export async function isCollectionPropertyExists(74 api: ApiPromise,75 collectionId: number,76 key: string,77 value: string,78): Promise<boolean> {79 const fetchedProps = await getCollectionProperties(api, collectionId);80 return isPropertyExists(key, value, fetchedProps);81}8283export async function isNftPropertyExists(84 api: ApiPromise,85 collectionId: number,86 nftId: number,87 key: string,88 value: string,89): Promise<boolean> {90 const fetchedProps = await getNftProperties(api, collectionId, nftId);91 return isPropertyExists(key, value, fetchedProps);92}9394export async function isNftChildOfAnother(95 api: ApiPromise,96 collectionId: number,97 nftId: number,98 parentNft: NftIdTuple,99): Promise<boolean> {100 return (await getChildren(api, parentNft[0], parentNft[1]))101 .find((childNft) => {102 return childNft.collectionId.toNumber() === collectionId103 && childNft.nftId.toNumber() === nftId;104 }) !== undefined;105}106107export function isTxResultSuccess(events: EventRecord[]): boolean {108 let success = false;109110 events.forEach(({event: {data, method, section}}) => {111 if (method == 'ExtrinsicSuccess') {112 success = true;113 }114 });115116 return success;117}118119export async function expectTxFailure(expectedError: RegExp, promise: Promise<any>) {120 await expect(promise).to.be.rejectedWith(expectedError);121}122123export function extractTxResult<T>(124 events: EventRecord[],125 expectSection: string,126 expectMethod: string,127 extractAction: (data: any) => T,128): TxResult<T> {129 let success = false;130 let successData = null;131 events.forEach(({event: {data, method, section}}) => {132 if (method == 'ExtrinsicSuccess') {133 success = true;134 } else if ((expectSection == section) && (expectMethod == method)) {135 successData = extractAction(data);136 }137 });138 const result: TxResult<T> = {139 success,140 successData,141 };142 return result;143}144145export function extractRmrkCoreTxResult<T>(146 events: EventRecord[],147 expectMethod: string,148 extractAction: (data: GenericEventData) => T,149): TxResult<T> {150 return extractTxResult(events, 'rmrkCore', expectMethod, extractAction);151}152153export function extractRmrkEquipTxResult<T>(154 events: EventRecord[],155 expectMethod: string,156 extractAction: (data: GenericEventData) => T,157): TxResult<T> {158 return extractTxResult(events, 'rmrkEquip', expectMethod, extractAction);159}160161export async function findResourceById(162 api: ApiPromise,163 collectionId: number,164 nftId: number,165 resourceId: number,166): Promise<ResourceInfo> {167 const resources = await getResources(api, collectionId, nftId);168169 let resource = null;170171 for (let i = 0; i < resources.length; i++) {172 const res = resources[i];173174 if (res.id.eq(resourceId)) {175 resource = res;176 break;177 }178 }179180 return resource!;181}182183export async function getResourceById(184 api: ApiPromise,185 collectionId: number,186 nftId: number,187 resourceId: number,188): Promise<ResourceInfo> {189 const resource = await findResourceById(190 api,191 collectionId,192 nftId,193 resourceId,194 );195196 expect(resource !== null, 'Error: resource was not found').to.be.true;197198 return resource!;199}200201export function checkResourceStatus(202 resource: ResourceInfo,203 expectedStatus: 'pending' | 'added',204) {205 expect(resource.pending.isTrue, `Error: added resource should be ${expectedStatus}`)206 .to.be.equal(expectedStatus === 'pending');207}1import {ApiPromise} from '@polkadot/api';2import {3 RmrkTraitsNftAccountIdOrCollectionNftTuple as NftOwner,4 RmrkTraitsPropertyPropertyInfo as Property,5 RmrkTraitsResourceResourceInfo as ResourceInfo,6} from '@polkadot/types/lookup';7import type {EventRecord} from '@polkadot/types/interfaces';8import type {GenericEventData} from '@polkadot/types';9import privateKey from '../../substrate/privateKey';10import {NftIdTuple, getChildren, getOwnedNfts, getCollectionProperties, getNftProperties, getResources} from './fetch';11import chaiAsPromised from 'chai-as-promised';12import chai from 'chai';13import {getApiConnection} from '../../substrate/substrate-api';14import {Context} from 'mocha';1516chai.use(chaiAsPromised);17const expect = chai.expect;1819interface TxResult<T> {20 success: boolean;21 successData: T | null;22}2324export enum Pallets {25 Inflation = 'inflation',26 RmrkCore = 'rmrkcore',27 RmrkEquip = 'rmrkequip',28 ReFungible = 'refungible',29 Fungible = 'fungible',30 NFT = 'nonfungible',31 Scheduler = 'scheduler',32 AppPromotion = 'apppromotion',33}3435let modulesNames: any;36export function getModuleNames(api: ApiPromise): string[] {37 if (typeof modulesNames === 'undefined')38 modulesNames = api.runtimeMetadata.asLatest.pallets.map(m => m.name.toString().toLowerCase());39 return modulesNames;40}4142export async function missingRequiredPallets(requiredPallets: string[]): Promise<string[]> {43 const api = await getApiConnection();44 const pallets = getModuleNames(api);4546 return requiredPallets.filter(p => !pallets.includes(p));47}4849export async function requirePallets(mocha: Context, requiredPallets: string[]) {50 const missingPallets = await missingRequiredPallets(requiredPallets);5152 if (missingPallets.length > 0) {53 const skippingTestMsg = `\tSkipping test "${mocha.test?.title}".`;54 const missingPalletsMsg = `\tThe following pallets are missing:\n\t- ${missingPallets.join('\n\t- ')}`;55 const skipMsg = `${skippingTestMsg}\n${missingPalletsMsg}`;5657 console.error('\x1b[38:5:208m%s\x1b[0m', skipMsg);5859 mocha.skip();60 }61}6263export function makeNftOwner(api: ApiPromise, owner: string | NftIdTuple): NftOwner {64 const isNftSending = (typeof owner !== 'string');6566 if (isNftSending) {67 return api.createType('RmrkTraitsNftAccountIdOrCollectionNftTuple', {68 'CollectionAndNftTuple': owner,69 });70 } else {71 const ss58Format = api.registry.getChainProperties()!.toJSON().ss58Format;72 return api.createType('RmrkTraitsNftAccountIdOrCollectionNftTuple', {73 AccountId: privateKey(owner, Number(ss58Format)).address,74 });75 }76}7778export async function isNftOwnedBy(79 api: ApiPromise,80 owner: string | NftIdTuple,81 collectionId: number,82 nftId: number,83): Promise<boolean> {84 if (typeof owner === 'string') {85 return (await getOwnedNfts(api, owner, collectionId))86 .find(ownedNftId => {87 return ownedNftId === nftId;88 }) !== undefined;89 } else {90 return (await getChildren(api, owner[0], owner[1]))91 .find(child => {92 return collectionId === child.collectionId.toNumber()93 && nftId === child.nftId.toNumber();94 }) !== undefined;95 }96}9798export function isPropertyExists(99 key: string,100 value: string,101 props: Property[],102): boolean {103 let isPropFound = false;104 for (let i = 0; i < props.length && !isPropFound; i++) {105 const fetchedProp = props[i];106107 isPropFound = fetchedProp.key.eq(key)108 && fetchedProp.value.eq(value);109 }110111 return isPropFound;112}113114export async function isCollectionPropertyExists(115 api: ApiPromise,116 collectionId: number,117 key: string,118 value: string,119): Promise<boolean> {120 const fetchedProps = await getCollectionProperties(api, collectionId);121 return isPropertyExists(key, value, fetchedProps);122}123124export async function isNftPropertyExists(125 api: ApiPromise,126 collectionId: number,127 nftId: number,128 key: string,129 value: string,130): Promise<boolean> {131 const fetchedProps = await getNftProperties(api, collectionId, nftId);132 return isPropertyExists(key, value, fetchedProps);133}134135export async function isNftChildOfAnother(136 api: ApiPromise,137 collectionId: number,138 nftId: number,139 parentNft: NftIdTuple,140): Promise<boolean> {141 return (await getChildren(api, parentNft[0], parentNft[1]))142 .find((childNft) => {143 return childNft.collectionId.toNumber() === collectionId144 && childNft.nftId.toNumber() === nftId;145 }) !== undefined;146}147148export function isTxResultSuccess(events: EventRecord[]): boolean {149 let success = false;150151 events.forEach(({event: {data, method, section}}) => {152 if (method == 'ExtrinsicSuccess') {153 success = true;154 }155 });156157 return success;158}159160export async function expectTxFailure(expectedError: RegExp, promise: Promise<any>) {161 await expect(promise).to.be.rejectedWith(expectedError);162}163164export function extractTxResult<T>(165 events: EventRecord[],166 expectSection: string,167 expectMethod: string,168 extractAction: (data: any) => T,169): TxResult<T> {170 let success = false;171 let successData = null;172 events.forEach(({event: {data, method, section}}) => {173 if (method == 'ExtrinsicSuccess') {174 success = true;175 } else if ((expectSection == section) && (expectMethod == method)) {176 successData = extractAction(data);177 }178 });179 const result: TxResult<T> = {180 success,181 successData,182 };183 return result;184}185186export function extractRmrkCoreTxResult<T>(187 events: EventRecord[],188 expectMethod: string,189 extractAction: (data: GenericEventData) => T,190): TxResult<T> {191 return extractTxResult(events, 'rmrkCore', expectMethod, extractAction);192}193194export function extractRmrkEquipTxResult<T>(195 events: EventRecord[],196 expectMethod: string,197 extractAction: (data: GenericEventData) => T,198): TxResult<T> {199 return extractTxResult(events, 'rmrkEquip', expectMethod, extractAction);200}201202export async function findResourceById(203 api: ApiPromise,204 collectionId: number,205 nftId: number,206 resourceId: number,207): Promise<ResourceInfo> {208 const resources = await getResources(api, collectionId, nftId);209210 let resource = null;211212 for (let i = 0; i < resources.length; i++) {213 const res = resources[i];214215 if (res.id.eq(resourceId)) {216 resource = res;217 break;218 }219 }220221 return resource!;222}223224export async function getResourceById(225 api: ApiPromise,226 collectionId: number,227 nftId: number,228 resourceId: number,229): Promise<ResourceInfo> {230 const resource = await findResourceById(231 api,232 collectionId,233 nftId,234 resourceId,235 );236237 expect(resource !== null, 'Error: resource was not found').to.be.true;238239 return resource!;240}241242export function checkResourceStatus(243 resource: ResourceInfo,244 expectedStatus: 'pending' | 'added',245) {246 expect(resource.pending.isTrue, `Error: added resource should be ${expectedStatus}`)247 .to.be.equal(expectedStatus === 'pending');248}