difftreelog
tests: displace chai-expect header copypasta
in: master
15 files changed
tests/src/addCollectionAdmin.test.tsdiffbeforeafterboth1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {IKeyringPair} from '@polkadot/types/types';18import chai from 'chai';19import chaiAsPromised from 'chai-as-promised';20import {itSub, usingPlaygrounds} from './util/playgrounds';2122chai.use(chaiAsPromised);23const expect = chai.expect;2425describe('Integration Test addCollectionAdmin(collection_id, new_admin_id):', () => {26 let donor: IKeyringPair;2728 before(async () => {29 await usingPlaygrounds(async (_, privateKeyWrapper) => {30 donor = privateKeyWrapper('//Alice');31 });32 });3334 itSub('Add collection admin.', async ({helper}) => {35 const [alice, bob] = await helper.arrange.createAccounts([10n, 10n], donor);36 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});3738 const collection = await helper.collection.getData(collectionId);39 expect(collection!.normalizedOwner!).to.be.equal(helper.address.normalizeSubstrate(alice.address));4041 await helper.nft.addAdmin(alice, collectionId, {Substrate: bob.address});4243 const adminListAfterAddAdmin = await helper.collection.getAdmins(collectionId);44 expect(adminListAfterAddAdmin).to.be.deep.contains({Substrate: bob.address});45 });46});4748describe('Negative Integration Test addCollectionAdmin(collection_id, new_admin_id):', () => {49 let donor: IKeyringPair;5051 before(async () => {52 await usingPlaygrounds(async (_, privateKeyWrapper) => {53 donor = privateKeyWrapper('//Alice');54 });55 });5657 itSub("Not owner can't add collection admin.", async ({helper}) => {58 const [alice, bob, charlie] = await helper.arrange.createAccounts([10n, 10n, 10n], donor);59 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});6061 const collection = await helper.collection.getData(collectionId);62 expect(collection?.normalizedOwner).to.be.equal(helper.address.normalizeSubstrate(alice.address));6364 const changeAdminTxBob = async () => helper.collection.addAdmin(bob, collectionId, {Substrate: bob.address});65 const changeAdminTxCharlie = async () => helper.collection.addAdmin(bob, collectionId, {Substrate: charlie.address});66 await expect(changeAdminTxCharlie()).to.be.rejectedWith(/common\.NoPermission/);67 await expect(changeAdminTxBob()).to.be.rejectedWith(/common\.NoPermission/);6869 const adminListAfterAddAdmin = await helper.collection.getAdmins(collectionId);70 expect(adminListAfterAddAdmin).to.be.not.deep.contains({Substrate: charlie.address});71 expect(adminListAfterAddAdmin).to.be.not.deep.contains({Substrate: bob.address});72 });7374 itSub("Admin can't add collection admin.", async ({helper}) => {75 const [alice, bob, charlie] = await helper.arrange.createAccounts([10n, 10n, 10n], donor);76 const collection = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});7778 await collection.addAdmin(alice, {Substrate: bob.address});7980 const adminListAfterAddAdmin = await collection.getAdmins();81 expect(adminListAfterAddAdmin).to.be.deep.contains({Substrate: bob.address});8283 const changeAdminTxCharlie = async () => collection.addAdmin(bob, {Substrate: charlie.address});84 await expect(changeAdminTxCharlie()).to.be.rejectedWith(/common\.NoPermission/);8586 const adminListAfterAddNewAdmin = await collection.getAdmins();87 expect(adminListAfterAddNewAdmin).to.be.deep.contains({Substrate: bob.address});88 expect(adminListAfterAddNewAdmin).to.be.not.deep.contains({Substrate: charlie.address});89 });9091 itSub("Can't add collection admin of not existing collection.", async ({helper}) => {92 const [alice, bob] = await helper.arrange.createAccounts([10n, 10n, 10n], donor);93 const collectionId = (1 << 32) - 1;9495 const addAdminTx = async () => helper.collection.addAdmin(alice, collectionId, {Substrate: bob.address});96 await expect(addAdminTx()).to.be.rejectedWith(/common\.CollectionNotFound/);9798 // Verifying that nothing bad happened (network is live, new collections can be created, etc.)99 await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});100 });101102 itSub("Can't add an admin to a destroyed collection.", async ({helper}) => {103 const [alice, bob] = await helper.arrange.createAccounts([10n, 10n, 10n], donor);104 const collection = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});105106 await collection.burn(alice);107 const addAdminTx = async () => collection.addAdmin(alice, {Substrate: bob.address});108 await expect(addAdminTx()).to.be.rejectedWith(/common\.CollectionNotFound/);109110 // Verifying that nothing bad happened (network is live, new collections can be created, etc.)111 await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});112 });113114 itSub('Add an admin to a collection that has reached the maximum number of admins limit', async ({helper}) => {115 const [alice, ...accounts] = await helper.arrange.createAccounts([10n, 0n, 0n, 0n, 0n, 0n, 0n, 0n], donor);116 const collection = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});117118 const chainAdminLimit = (helper.api!.consts.common.collectionAdminsLimit as any).toNumber();119 expect(chainAdminLimit).to.be.equal(5);120121 for (let i = 0; i < chainAdminLimit; i++) {122 await collection.addAdmin(alice, {Substrate: accounts[i].address});123 const adminListAfterAddAdmin = await collection.getAdmins();124 expect(adminListAfterAddAdmin).to.be.deep.contains({Substrate: accounts[i].address});125 }126127 const addExtraAdminTx = async () => collection.addAdmin(alice, {Substrate: accounts[chainAdminLimit].address});128 await expect(addExtraAdminTx()).to.be.rejectedWith(/common\.CollectionAdminCountExceeded/);129 });130});1// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.2// This file is part of Unique Network.34// Unique Network is free software: you can redistribute it and/or modify5// it under the terms of the GNU General Public License as published by6// the Free Software Foundation, either version 3 of the License, or7// (at your option) any later version.89// Unique Network is distributed in the hope that it will be useful,10// but WITHOUT ANY WARRANTY; without even the implied warranty of11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the12// GNU General Public License for more details.1314// You should have received a copy of the GNU General Public License15// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.1617import {IKeyringPair} from '@polkadot/types/types';18import {itSub, usingPlaygrounds, expect} from './util/playgrounds';1920describe('Integration Test addCollectionAdmin(collection_id, new_admin_id):', () => {21 let donor: IKeyringPair;2223 before(async () => {24 await usingPlaygrounds(async (_, privateKeyWrapper) => {25 donor = privateKeyWrapper('//Alice');26 });27 });2829 itSub('Add collection admin.', async ({helper}) => {30 const [alice, bob] = await helper.arrange.createAccounts([10n, 10n], donor);31 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});3233 const collection = await helper.collection.getData(collectionId);34 expect(collection!.normalizedOwner!).to.be.equal(helper.address.normalizeSubstrate(alice.address));3536 await helper.nft.addAdmin(alice, collectionId, {Substrate: bob.address});3738 const adminListAfterAddAdmin = await helper.collection.getAdmins(collectionId);39 expect(adminListAfterAddAdmin).to.be.deep.contains({Substrate: bob.address});40 });41});4243describe('Negative Integration Test addCollectionAdmin(collection_id, new_admin_id):', () => {44 let donor: IKeyringPair;4546 before(async () => {47 await usingPlaygrounds(async (_, privateKeyWrapper) => {48 donor = privateKeyWrapper('//Alice');49 });50 });5152 itSub("Not owner can't add collection admin.", async ({helper}) => {53 const [alice, bob, charlie] = await helper.arrange.createAccounts([10n, 10n, 10n], donor);54 const {collectionId} = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});5556 const collection = await helper.collection.getData(collectionId);57 expect(collection?.normalizedOwner).to.be.equal(helper.address.normalizeSubstrate(alice.address));5859 const changeAdminTxBob = async () => helper.collection.addAdmin(bob, collectionId, {Substrate: bob.address});60 const changeAdminTxCharlie = async () => helper.collection.addAdmin(bob, collectionId, {Substrate: charlie.address});61 await expect(changeAdminTxCharlie()).to.be.rejectedWith(/common\.NoPermission/);62 await expect(changeAdminTxBob()).to.be.rejectedWith(/common\.NoPermission/);6364 const adminListAfterAddAdmin = await helper.collection.getAdmins(collectionId);65 expect(adminListAfterAddAdmin).to.be.not.deep.contains({Substrate: charlie.address});66 expect(adminListAfterAddAdmin).to.be.not.deep.contains({Substrate: bob.address});67 });6869 itSub("Admin can't add collection admin.", async ({helper}) => {70 const [alice, bob, charlie] = await helper.arrange.createAccounts([10n, 10n, 10n], donor);71 const collection = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});7273 await collection.addAdmin(alice, {Substrate: bob.address});7475 const adminListAfterAddAdmin = await collection.getAdmins();76 expect(adminListAfterAddAdmin).to.be.deep.contains({Substrate: bob.address});7778 const changeAdminTxCharlie = async () => collection.addAdmin(bob, {Substrate: charlie.address});79 await expect(changeAdminTxCharlie()).to.be.rejectedWith(/common\.NoPermission/);8081 const adminListAfterAddNewAdmin = await collection.getAdmins();82 expect(adminListAfterAddNewAdmin).to.be.deep.contains({Substrate: bob.address});83 expect(adminListAfterAddNewAdmin).to.be.not.deep.contains({Substrate: charlie.address});84 });8586 itSub("Can't add collection admin of not existing collection.", async ({helper}) => {87 const [alice, bob] = await helper.arrange.createAccounts([10n, 10n, 10n], donor);88 const collectionId = (1 << 32) - 1;8990 const addAdminTx = async () => helper.collection.addAdmin(alice, collectionId, {Substrate: bob.address});91 await expect(addAdminTx()).to.be.rejectedWith(/common\.CollectionNotFound/);9293 // Verifying that nothing bad happened (network is live, new collections can be created, etc.)94 await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});95 });9697 itSub("Can't add an admin to a destroyed collection.", async ({helper}) => {98 const [alice, bob] = await helper.arrange.createAccounts([10n, 10n, 10n], donor);99 const collection = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});100101 await collection.burn(alice);102 const addAdminTx = async () => collection.addAdmin(alice, {Substrate: bob.address});103 await expect(addAdminTx()).to.be.rejectedWith(/common\.CollectionNotFound/);104105 // Verifying that nothing bad happened (network is live, new collections can be created, etc.)106 await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});107 });108109 itSub('Add an admin to a collection that has reached the maximum number of admins limit', async ({helper}) => {110 const [alice, ...accounts] = await helper.arrange.createAccounts([10n, 0n, 0n, 0n, 0n, 0n, 0n, 0n], donor);111 const collection = await helper.nft.mintCollection(alice, {name: 'Collection Name', description: 'Collection Description', tokenPrefix: 'COL'});112113 const chainAdminLimit = (helper.api!.consts.common.collectionAdminsLimit as any).toNumber();114 expect(chainAdminLimit).to.be.equal(5);115116 for (let i = 0; i < chainAdminLimit; i++) {117 await collection.addAdmin(alice, {Substrate: accounts[i].address});118 const adminListAfterAddAdmin = await collection.getAdmins();119 expect(adminListAfterAddAdmin).to.be.deep.contains({Substrate: accounts[i].address});120 }121122 const addExtraAdminTx = async () => collection.addAdmin(alice, {Substrate: accounts[chainAdminLimit].address});123 await expect(addExtraAdminTx()).to.be.rejectedWith(/common\.CollectionAdminCountExceeded/);124 });125});tests/src/fungible.test.tsdiffbeforeafterboth--- a/tests/src/fungible.test.ts
+++ b/tests/src/fungible.test.ts
@@ -16,13 +16,9 @@
import {IKeyringPair} from '@polkadot/types/types';
import {U128_MAX} from './util/helpers';
-import {itSub, usingPlaygrounds} from './util/playgrounds';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
+import {itSub, usingPlaygrounds, expect} from './util/playgrounds';
-chai.use(chaiAsPromised);
-const expect = chai.expect;
-
+// todo:playgrounds get rid of globals
let alice: IKeyringPair;
let bob: IKeyringPair;
tests/src/pallet-presence.test.tsdiffbeforeafterboth--- a/tests/src/pallet-presence.test.ts
+++ b/tests/src/pallet-presence.test.ts
@@ -14,8 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-import {expect} from 'chai';
-import {itSub, usingPlaygrounds} from './util/playgrounds';
+import {itSub, usingPlaygrounds, expect} from './util/playgrounds';
// Pallets that must always be present
const requiredPallets = [
tests/src/refungible.test.tsdiffbeforeafterboth--- a/tests/src/refungible.test.ts
+++ b/tests/src/refungible.test.ts
@@ -15,12 +15,7 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
import {IKeyringPair} from '@polkadot/types/types';
-import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds} from './util/playgrounds';
-
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, Pallets, requirePalletsOrSkip, usingPlaygrounds, expect} from './util/playgrounds';
let alice: IKeyringPair;
let bob: IKeyringPair;
tests/src/removeCollectionAdmin.test.tsdiffbeforeafterboth--- a/tests/src/removeCollectionAdmin.test.ts
+++ b/tests/src/removeCollectionAdmin.test.ts
@@ -14,13 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
import {IKeyringPair} from '@polkadot/types/types';
-import {itSub, usingPlaygrounds} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, usingPlaygrounds, expect} from './util/playgrounds';
describe('Integration Test removeCollectionAdmin(collection_id, account_id):', () => {
let alice: IKeyringPair;
tests/src/removeCollectionSponsor.test.tsdiffbeforeafterboth--- a/tests/src/removeCollectionSponsor.test.ts
+++ b/tests/src/removeCollectionSponsor.test.ts
@@ -14,13 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
import {IKeyringPair} from '@polkadot/types/types';
-import {itSub, usingPlaygrounds} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, usingPlaygrounds, expect} from './util/playgrounds';
describe('integration test: ext. removeCollectionSponsor():', () => {
let donor: IKeyringPair;
tests/src/removeFromAllowList.test.tsdiffbeforeafterboth--- a/tests/src/removeFromAllowList.test.ts
+++ b/tests/src/removeFromAllowList.test.ts
@@ -14,13 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
import {IKeyringPair} from '@polkadot/types/types';
-import {itSub, usingPlaygrounds} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, usingPlaygrounds, expect} from './util/playgrounds';
describe('Integration Test removeFromAllowList', () => {
let alice: IKeyringPair;
tests/src/rpc.test.tsdiffbeforeafterboth--- a/tests/src/rpc.test.ts
+++ b/tests/src/rpc.test.ts
@@ -1,11 +1,22 @@
+// Copyright 2019-2022 Unique Network (Gibraltar) Ltd.
+// This file is part of Unique Network.
+
+// Unique Network is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// Unique Network is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
+
import {IKeyringPair} from '@polkadot/types/types';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-import {usingPlaygrounds, itSub} from './util/playgrounds';
+import {usingPlaygrounds, itSub, expect} from './util/playgrounds';
import {crossAccountIdFromLower} from './util/playgrounds/unique';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
describe('integration test: RPC methods', () => {
let donor: IKeyringPair;
tests/src/setCollectionLimits.test.tsdiffbeforeafterboth--- a/tests/src/setCollectionLimits.test.ts
+++ b/tests/src/setCollectionLimits.test.ts
@@ -16,12 +16,7 @@
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setchainlimits
import {IKeyringPair} from '@polkadot/types/types';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-import {itSub, usingPlaygrounds} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, usingPlaygrounds, expect} from './util/playgrounds';
const accountTokenOwnershipLimit = 0;
const sponsoredDataSize = 0;
tests/src/setCollectionSponsor.test.tsdiffbeforeafterboth--- a/tests/src/setCollectionSponsor.test.ts
+++ b/tests/src/setCollectionSponsor.test.ts
@@ -14,13 +14,8 @@
// You should have received a copy of the GNU General Public License
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
import {IKeyringPair} from '@polkadot/types/types';
-import {itSub, usingPlaygrounds, Pallets} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, usingPlaygrounds, expect, Pallets} from './util/playgrounds';
describe('integration test: ext. setCollectionSponsor():', () => {
let alice: IKeyringPair;
tests/src/setMintPermission.test.tsdiffbeforeafterboth--- a/tests/src/setMintPermission.test.ts
+++ b/tests/src/setMintPermission.test.ts
@@ -15,12 +15,7 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
import {IKeyringPair} from '@polkadot/types/types';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-import {itSub, usingPlaygrounds} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, usingPlaygrounds, expect} from './util/playgrounds';
describe('Integration Test setMintPermission', () => {
let alice: IKeyringPair;
tests/src/setPublicAccessMode.test.tsdiffbeforeafterboth--- a/tests/src/setPublicAccessMode.test.ts
+++ b/tests/src/setPublicAccessMode.test.ts
@@ -16,12 +16,7 @@
// https://unique-network.readthedocs.io/en/latest/jsapi.html#setschemaversion
import {IKeyringPair} from '@polkadot/types/types';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-import {itSub, usingPlaygrounds} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, usingPlaygrounds, expect} from './util/playgrounds';
describe('Integration Test setPublicAccessMode(): ', () => {
let alice: IKeyringPair;
tests/src/transfer.test.tsdiffbeforeafterboth--- a/tests/src/transfer.test.ts
+++ b/tests/src/transfer.test.ts
@@ -15,13 +15,8 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
import {IKeyringPair} from '@polkadot/types/types';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
import {itEth, usingEthPlaygrounds} from './eth/util/playgrounds';
-import {itSub, Pallets, usingPlaygrounds} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, Pallets, usingPlaygrounds, expect} from './util/playgrounds';
describe('Integration Test Transfer(recipient, collection_id, item_id, value)', () => {
let alice: IKeyringPair;
tests/src/transferFrom.test.tsdiffbeforeafterboth--- a/tests/src/transferFrom.test.ts
+++ b/tests/src/transferFrom.test.ts
@@ -15,12 +15,7 @@
// along with Unique Network. If not, see <http://www.gnu.org/licenses/>.
import {IKeyringPair} from '@polkadot/types/types';
-import chai from 'chai';
-import chaiAsPromised from 'chai-as-promised';
-import {itSub, Pallets, usingPlaygrounds} from './util/playgrounds';
-
-chai.use(chaiAsPromised);
-const expect = chai.expect;
+import {itSub, Pallets, usingPlaygrounds, expect} from './util/playgrounds';
describe('Integration Test transferFrom(from, recipient, collection_id, item_id, value):', () => {
let alice: IKeyringPair;
tests/src/util/playgrounds/index.tsdiffbeforeafterboth--- a/tests/src/util/playgrounds/index.ts
+++ b/tests/src/util/playgrounds/index.ts
@@ -2,12 +2,17 @@
// SPDX-License-Identifier: Apache-2.0
import {IKeyringPair} from '@polkadot/types/types';
+import chai from 'chai';
+import chaiAsPromised from 'chai-as-promised';
import {Context} from 'mocha';
import config from '../../config';
import '../../interfaces/augment-api-events';
import {DevUniqueHelper, SilentLogger, SilentConsole} from './unique.dev';
+chai.use(chaiAsPromised);
+export const expect = chai.expect;
+
export const usingPlaygrounds = async (code: (helper: DevUniqueHelper, privateKey: (seed: string) => IKeyringPair) => Promise<void>) => {
const silentConsole = new SilentConsole();
silentConsole.enable();