git.delta.rocks / unique-network / refs/commits / bc53a7e6ed12

difftreelog

enableDisableTransfer migrated

rkv2022-09-16parent: #ff1beac.patch.diff
in: master

1 file changed

modifiedtests/src/enableDisableTransfer.test.tsdiffbeforeafterboth
before · tests/src/enableDisableTransfer.test.ts
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 chai from 'chai';18import chaiAsPromised from 'chai-as-promised';19import usingApi from './substrate/substrate-api';20import {21  createItemExpectSuccess,22  createCollectionExpectSuccess,23  transferExpectSuccess,24  transferExpectFailure,25  setTransferFlagExpectSuccess,26  setTransferFlagExpectFailure,27} from './util/helpers';2829chai.use(chaiAsPromised);3031describe('Enable/Disable Transfers', () => {32  it('User can transfer token with enabled transfer flag', async () => {33    await usingApi(async (api, privateKeyWrapper) => {34      const alice = privateKeyWrapper('//Alice');35      const bob = privateKeyWrapper('//Bob');36      // nft37      const nftCollectionId = await createCollectionExpectSuccess();38      const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');3940      // explicitely set transfer flag41      await setTransferFlagExpectSuccess(alice, nftCollectionId, true);4243      await transferExpectSuccess(nftCollectionId, newNftTokenId, alice, bob, 1);44    });45  });4647  it('User can\'n transfer token with disabled transfer flag', async () => {48    await usingApi(async (api, privateKeyWrapper) => {49      const alice = privateKeyWrapper('//Alice');50      const bob = privateKeyWrapper('//Bob');51      // nft52      const nftCollectionId = await createCollectionExpectSuccess();53      const newNftTokenId = await createItemExpectSuccess(alice, nftCollectionId, 'NFT');5455      // explicitely set transfer flag56      await setTransferFlagExpectSuccess(alice, nftCollectionId, false);5758      await transferExpectFailure(nftCollectionId, newNftTokenId, alice, bob, 1);59    });60  });61});6263describe('Negative Enable/Disable Transfers', () => {64  it('Non-owner cannot change transfer flag', async () => {65    await usingApi(async (api, privateKeyWrapper) => {66      const bob = privateKeyWrapper('//Bob');67      // nft68      const nftCollectionId = await createCollectionExpectSuccess();6970      // Change transfer flag71      await setTransferFlagExpectFailure(bob, nftCollectionId, false);72    });73  });74});
after · tests/src/enableDisableTransfer.test.ts
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('Enable/Disable Transfers', () => {21  let alice: IKeyringPair;22  let bob: IKeyringPair;2324  before(async () => {25    await usingPlaygrounds(async (helper, privateKey) => {26      const donor = privateKey('//Alice');27      [alice, bob] = await helper.arrange.createAccounts([100n, 100n], donor);28    });29  });3031  itSub('User can transfer token with enabled transfer flag', async ({helper}) => {32    const collection = await helper.nft.mintCollection(alice, {33      name: 'test',34      description: 'test',35      tokenPrefix: 'test',36      limits: {37        transfersEnabled: true,38      },39    });40    const token = await collection.mintToken(alice, {Substrate: alice.address});41    await token.transfer(alice, {Substrate: bob.address});42    expect(await token.getOwner()).to.be.deep.equal({Substrate: bob.address});43  });4445  itSub('User can\'n transfer token with disabled transfer flag', async ({helper}) => {46    const collection = await helper.nft.mintCollection(alice, {47      name: 'test',48      description: 'test',49      tokenPrefix: 'test',50      limits: {51        transfersEnabled: false,52      },53    });54    const token = await collection.mintToken(alice, {Substrate: alice.address});55    await expect(token.transfer(alice, {Substrate: bob.address})).to.be.rejectedWith(/common\.TransferNotAllowed/);56  });57});5859describe('Negative Enable/Disable Transfers', () => {60  let alice: IKeyringPair;61  let bob: IKeyringPair;6263  before(async () => {64    await usingPlaygrounds(async (helper, privateKey) => {65      const donor = privateKey('//Alice');66      [alice, bob] = await helper.arrange.createAccounts([100n, 100n], donor);67    });68  });6970  itSub('Non-owner cannot change transfer flag', async ({helper}) => {71    const collection = await helper.nft.mintCollection(alice, {72      name: 'test',73      description: 'test',74      tokenPrefix: 'test',75      limits: {76        transfersEnabled: true,77      },78    });7980    await expect(collection.setLimits(bob, {transfersEnabled: false})).to.be.rejectedWith(/common\.NoPermission/);81  });82});