12345import { ApiPromise } from '@polkadot/api';6import BN from 'bn.js';7import chai from 'chai';8import chaiAsPromised from 'chai-as-promised';9import privateKey from './substrate/privateKey';10import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';11import {12 approveExpectSuccess,13 createCollectionExpectSuccess,14 createItemExpectSuccess,15 destroyCollectionExpectSuccess,16 transferFromExpectSuccess,17} from './util/helpers';18import {IKeyringPair} from "@polkadot/types/types";1920chai.use(chaiAsPromised);21const expect = chai.expect;2223describe('Integration Test transferFrom(from, recipient, collection_id, item_id, value):', () => {24 it('Execute the extrinsic and check nftItemList - owner of token', async () => {25 await usingApi(async (api: ApiPromise) => {26 const Alice = privateKey('//Alice');27 const Bob = privateKey('//Bob');28 const Charlie = privateKey('//CHARLIE');29 const nftCollectionId = await createCollectionExpectSuccess();30 console.log('nftCollectionId', nftCollectionId);31 const collectionInfo = await api.query.nft.collection(nftCollectionId);32 console.log('collectionInfo', collectionInfo);33 34 const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');35 await approveExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob);3637 await transferFromExpectSuccess(nftCollectionId, newNftTokenId, Alice, Charlie, 1, 'NFT');3839 40 4142434445464748 49 await destroyCollectionExpectSuccess(nftCollectionId);50 51 52 });53 });54});5556describe('Negative Integration Test transferFrom(from, recipient, collection_id, item_id, value):', () => {57 it('transferFrom for a collection that does not exist', async () => {58 await usingApi(async (api: ApiPromise) => {5960 });61 });6263 it('transferFrom for a collection that was destroyed', async () => {64 await usingApi(async (api: ApiPromise) => {6566 });67 });6869 it('transferFrom a token that does not exist', async () => {70 await usingApi(async (api: ApiPromise) => {7172 });73 });7475 it('transferFrom a token that was deleted', async () => {76 await usingApi(async (api: ApiPromise) => {7778 });79 });8081 it('transferFrom for not approved address', async () => {82 await usingApi(async (api: ApiPromise) => {8384 });85 });8687 it('transferFrom incorrect token count', async () => {88 await usingApi(async (api: ApiPromise) => {8990 });91 });9293 it('execute transferFrom from account that is not owner of collection', async () => {94 await usingApi(async (api: ApiPromise) => {9596 });97 });98});