git.delta.rocks / unique-network / refs/commits / 6bc9f6eef346

difftreelog

source

tests/src/nesting/rules-smoke.test.ts3.1 KiBsourcehistory
1import {expect} from 'chai';2import {tokenIdToAddress} from '../eth/util/helpers';3import usingApi, {executeTransaction} from '../substrate/substrate-api';4import {createCollectionExpectSuccess, createFungibleItemExpectSuccess, createItemExpectSuccess, CrossAccountId, getCreateCollectionResult, requirePallets, Pallets} from '../util/helpers';5import {IKeyringPair} from '@polkadot/types/types';67describe('nesting check', () => {8  let alice!: IKeyringPair;9  let nestTarget!: CrossAccountId;10  before(async() => {11    await usingApi(async (api, privateKeyWrapper) => {12      alice = privateKeyWrapper('//Alice');13      const bob = privateKeyWrapper('//Bob');14      const events = await executeTransaction(api, alice, api.tx.unique.createCollectionEx({15        mode: 'NFT',16        permissions: {17          nesting: {tokenOwner: true, restricted: []},18        },19      }));20      const collection = getCreateCollectionResult(events).collectionId;21      const token = await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: bob.address});22      nestTarget = {Ethereum: tokenIdToAddress(collection, token)};23    });24  });2526  it('called for fungible', async () => {27    await usingApi(async api => {28      const collection = await createCollectionExpectSuccess({mode: {type: 'Fungible',decimalPoints:0}});29      await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {Fungible: {Value: 1}})))30        .to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);3132      await createFungibleItemExpectSuccess(alice, collection, {Value:1n}, {Substrate: alice.address});33      await expect(executeTransaction(api, alice, api.tx.unique.transfer(nestTarget, collection, 0, 1n)))34        .to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);35    });36  });3738  it('called for nonfungible', async () => {39    await usingApi(async api => {40      const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});41      await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {NFT: {properties: []}})))42        .to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);4344      const token = await createItemExpectSuccess(alice, collection, 'NFT', {Substrate: alice.address});45      await expect(executeTransaction(api, alice, api.tx.unique.transfer(nestTarget, collection, token, 1n)))46        .to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);47    });48  });4950  it('called for refungible', async function() {51    await requirePallets(this, [Pallets.ReFungible]);5253    await usingApi(async api => {54      const collection = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});55      await expect(executeTransaction(api, alice, api.tx.unique.createItem(collection, nestTarget, {ReFungible: {}})))56        .to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);5758      const token = await createItemExpectSuccess(alice, collection, 'ReFungible', {Substrate: alice.address});59      await expect(executeTransaction(api, alice, api.tx.unique.transfer(nestTarget, collection, token, 1n)))60        .to.be.rejectedWith(/^common\.UserIsNotAllowedToNest$/);61    });62  });63});