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

difftreelog

source

tests/src/transfer.test.ts9.2 KiBsourcehistory
1//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56import { ApiPromise } from '@polkadot/api';7import { expect } from 'chai';8import { alicesPublicKey, bobsPublicKey } from './accounts';9import getBalance from './substrate/get-balance';10import privateKey from './substrate/privateKey';11import { default as usingApi, submitTransactionAsync } from './substrate/substrate-api';12import {13  burnItemExpectSuccess, createCollectionExpectSuccess, createItemExpectSuccess,14  destroyCollectionExpectSuccess,15  findUnusedAddress,16  getCreateCollectionResult,17  getCreateItemResult,18  transferExpectFail,19  transferExpectSuccess,20} from './util/helpers';2122/*describe('Integration Test Transfer(recipient, collection_id, item_id, value)', () => {23  it('Balance transfers and check balance', async () => {24    await usingApi(async (api: ApiPromise) => {25      const [alicesBalanceBefore, bobsBalanceBefore] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);2627      const alicePrivateKey = privateKey('//Alice');2829      const transfer = api.tx.balances.transfer(bobsPublicKey, 1n);30      const events = await submitTransactionAsync(alicePrivateKey, transfer);31      const result = getCreateItemResult(events);32      // tslint:disable-next-line:no-unused-expression33      expect(result.success).to.be.true;3435      const [alicesBalanceAfter, bobsBalanceAfter] = await getBalance(api, [alicesPublicKey, bobsPublicKey]);3637      // tslint:disable-next-line:no-unused-expression38      expect(alicesBalanceAfter < alicesBalanceBefore).to.be.true;39      // tslint:disable-next-line:no-unused-expression40      expect(bobsBalanceAfter > bobsBalanceBefore).to.be.true;41    });42  });4344  it('Inability to pay fees error message is correct', async () => {45    await usingApi(async (api) => {46      // Find unused address47      const pk = await findUnusedAddress(api);4849      const badTransfer = api.tx.balances.transfer(bobsPublicKey, 1n);50      // const events = await submitTransactionAsync(pk, badTransfer);51      const badTransaction = async () => {52        const events = await submitTransactionAsync(pk, badTransfer);53        const result = getCreateCollectionResult(events);54        // tslint:disable-next-line:no-unused-expression55        expect(result.success).to.be.false;56      };57      expect(badTransaction()).to.be.rejectedWith('Inability to pay some fees , e.g. account balance too low');58    });59  });6061  it('Create collection, balance transfers and check balance', async () => {62    await usingApi(async (api) => {63      const Alice = privateKey('//Alice');64      const Bob = privateKey('//Bob');65      // nft66      const nftCollectionId = await createCollectionExpectSuccess();67      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');68      await transferExpectSuccess(nftCollectionId, newNftTokenId, Alice, Bob, 1, 'NFT');69      // fungible70      const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});71      const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');72      await transferExpectSuccess(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1, 'Fungible');73      // reFungible74      const reFungibleCollectionId = await75        createCollectionExpectSuccess({mode: {type: 'ReFungible', decimalPoints: 0}});76      const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');77      await transferExpectSuccess(reFungibleCollectionId,78        newReFungibleTokenId, Alice, Bob, 1, 'ReFungible');79    });80  });81});*/8283describe('Negative Integration Test Transfer(recipient, collection_id, item_id, value)', () => {84  /*it('Transfer with not existed collection_id', async () => {85    await usingApi(async (api: ApiPromise) => {86      const Alice = privateKey('//Alice');87      const Bob = privateKey('//Bob');88      // nft89      const nftCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;90      await transferExpectFail(nftCollectionCount + 1, 1, Alice, Bob, 1);91      // fungible92      const fungibleCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;93      await transferExpectFail(fungibleCollectionCount + 1, 1, Alice, Bob, 1);94      // reFungible95      const reFungibleCollectionCount = await api.query.nft.createdCollectionCount() as unknown as number;96      await transferExpectFail(reFungibleCollectionCount + 1, 1, Alice, Bob, 1);97    });98  });99  it('Transfer with deleted collection_id', async () => {100    await usingApi(async (api: ApiPromise) => {101      const Alice = privateKey('//Alice');102      const Bob = privateKey('//Bob');103      // nft104      const nftCollectionId = await createCollectionExpectSuccess();105      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');106      await destroyCollectionExpectSuccess(nftCollectionId);107      await transferExpectFail(nftCollectionId, newNftTokenId, Alice, Bob, 1, 'NFT');108      // fungible109      const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});110      const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');111      await destroyCollectionExpectSuccess(fungibleCollectionId);112      await transferExpectFail(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1, 'Fungible');113      // reFungible114      const reFungibleCollectionId = await115        createCollectionExpectSuccess({mode: {type: 'ReFungible', decimalPoints: 0}});116      const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');117      await destroyCollectionExpectSuccess(reFungibleCollectionId);118      await transferExpectFail(reFungibleCollectionId,119        newReFungibleTokenId, Alice, Bob, 1, 'ReFungible');120    });121  });122  it('Transfer with not existed item_id', async () => {123   await usingApi(async (api: ApiPromise) => {124     const Alice = privateKey('//Alice');125      const Bob = privateKey('//Bob');126      // nft127      const nftCollectionId = await createCollectionExpectSuccess();128      await transferExpectFail(nftCollectionId, 2, Alice, Bob, 1, 'NFT');129      // fungible130      const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});131      await transferExpectFail(fungibleCollectionId, 2, Alice, Bob, 1, 'Fungible');132      // reFungible133      const reFungibleCollectionId = await134        createCollectionExpectSuccess({mode: {type: 'ReFungible', decimalPoints: 0}});135      await transferExpectFail(reFungibleCollectionId,136        2, Alice, Bob, 1, 'ReFungible');137   });138  });139  it('Transfer with deleted item_id', async () => {140    await usingApi(async (api: ApiPromise) => {141      const Alice = privateKey('//Alice');142      const Bob = privateKey('//Bob');143      // nft144      const nftCollectionId = await createCollectionExpectSuccess();145      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');146      await burnItemExpectSuccess(Alice, nftCollectionId, newNftTokenId, 1);147      await transferExpectFail(nftCollectionId, newNftTokenId, Alice, Bob, 1, 'NFT');148      // fungible149      const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});150      const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');151      await burnItemExpectSuccess(Alice, fungibleCollectionId, newFungibleTokenId, 1);152      await transferExpectFail(fungibleCollectionId, newFungibleTokenId, Alice, Bob, 1, 'Fungible');153      // reFungible154      const reFungibleCollectionId = await155        createCollectionExpectSuccess({mode: {type: 'ReFungible', decimalPoints: 0}});156      const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');157      await burnItemExpectSuccess(Alice, reFungibleCollectionId, newReFungibleTokenId, 1);158      await transferExpectFail(reFungibleCollectionId,159        newReFungibleTokenId, Alice, Bob, 1, 'ReFungible');160    });161  });*/162  it('Transfer with recipient that is not owner', async () => {163    await usingApi(async (api: ApiPromise) => {164      const Alice = privateKey('//Alice');165      const Bob = privateKey('//Bob');166      const Charlie = privateKey('//CHARLIE');167      // nft168      const nftCollectionId = await createCollectionExpectSuccess();169      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');170      await transferExpectFail(nftCollectionId, newNftTokenId, Charlie, Bob, 1, 'NFT');171      // fungible172      const fungibleCollectionId = await createCollectionExpectSuccess({mode: {type: 'Fungible', decimalPoints: 0}});173      const newFungibleTokenId = await createItemExpectSuccess(Alice, fungibleCollectionId, 'Fungible');174      await transferExpectFail(fungibleCollectionId, newFungibleTokenId, Charlie, Bob, 1, 'Fungible');175      // reFungible176      const reFungibleCollectionId = await177        createCollectionExpectSuccess({mode: {type: 'ReFungible', decimalPoints: 0}});178      const newReFungibleTokenId = await createItemExpectSuccess(Alice, reFungibleCollectionId, 'ReFungible');179      await transferExpectFail(reFungibleCollectionId,180        newReFungibleTokenId, Charlie, Bob, 1, 'ReFungible');181    });182  });183});