difftreelog
enableDisableTransfer migrated
in: master
1 file changed
tests/src/enableDisableTransfer.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 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});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});