1234567891011121314151617import type {IKeyringPair} from '@polkadot/types/types';18import {itSub, usingPlaygrounds, expect} from './util/index.js';1920describe('Enable/Disable Transfers', () => {21 let alice: IKeyringPair;22 let bob: IKeyringPair;2324 before(async () => {25 await usingPlaygrounds(async (helper, privateKey) => {26 const donor = await privateKey({url: import.meta.url});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 = await privateKey({url: import.meta.url});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});