git.delta.rocks / unique-network / refs/commits / 3d0d9bf1d307

difftreelog

source

tests/src/rmrk/mintNft.test.ts4.6 KiBsourcehistory
1import {expect} from 'chai';2import {getApiConnection} from '../substrate/substrate-api';3import {getNft} from './util/fetch';4import {expectTxFailure} from './util/helpers';5import {createCollection, mintNft} from './util/tx';67describe('integration test: mint new NFT', () => {8  let api: any;9  before(async () => { api = await getApiConnection(); });1011  const alice = '//Alice';12  const bob = '//Bob';13  const maxCollectionId = 0xFFFFFFFF;14  const maxNftId = 0xFFFFFFFF;1516  it('mint NFT', async () => {17    const owner = null;18    const collectionMetadata = 'mintingCollectionMetadata';19    const collectionMax = null;20    const collectionSymbol = 'MCS';21    const recipientUri = null;22    const royalty = null;23    const nftMetadata = 'NFT-test-metadata';2425    const collectionId = await createCollection(26      api,27      alice,28      collectionMetadata,29      collectionMax,30      collectionSymbol,31    );3233    await mintNft(34      api,35      alice,36      owner,37      collectionId,38      nftMetadata,39      recipientUri,40      royalty,41    );42  });4344  it('mint NFT and set another owner', async () => {45    const owner = bob;46    const collectionMetadata = 'setOwnerCollectionMetadata';47    const collectionMax = null;48    const collectionSymbol = 'SOCS';49    const recipientUri = null;50    const royalty = null;51    const nftMetadata = 'setOwner-NFT-metadata';5253    const collectionId = await createCollection(54      api,55      alice,56      collectionMetadata,57      collectionMax,58      collectionSymbol,59    );6061    await mintNft(62      api,63      alice,64      owner,65      collectionId,66      nftMetadata,67      recipientUri,68      royalty,69    );70  });7172  it('mint NFT with recipient and roalty', async () => {73    const owner = alice;74    const collectionMetadata = 'mintingCollectionMetadata';75    const collectionMax = null;76    const collectionSymbol = 'MCS';77    const recipientUri = bob;78    const royalty = 70000;79    const nftMetadata = 'recipient-royalty-NFT-test-metadata';8081    const collectionId = await createCollection(82      api,83      alice,84      collectionMetadata,85      collectionMax,86      collectionSymbol,87    );8889    await mintNft(90      api,91      alice,92      owner,93      collectionId,94      nftMetadata,95      recipientUri,96      royalty,97    );98  });99100  it('mint NFT with resources', async () => {101    const owner = alice;102    const collectionMetadata = 'mintingCollectionMetadata';103    const collectionMax = null;104    const collectionSymbol = 'MCS';105    const nftMetadata = 'NFT-with-resources-test-metadata';106    const resources = [107      {108        basic: {109          metadata: 'basic-resource-nft-minting',110        },111      }, {112        slot: {113          metadata: 'slot-resource-nft-minting',114          slot: 9,115        },116      }, {117        composable: {118          metadata: 'composable-resource-nft-minting',119          parts: [0, 5, 2],120        },121      }, {122        slot: {123          metadata: 'slot-resource-nft-minting-2',124          thumb: 'srnm2',125          base: 5,126        },127      },128    ];129130    const collectionId = await createCollection(131      api,132      alice,133      collectionMetadata,134      collectionMax,135      collectionSymbol,136    );137138    await mintNft(139      api,140      alice,141      owner,142      collectionId,143      nftMetadata,144      null,145      null,146      true,147      resources,148    );149  });150151  it('[negative] unable to mint NFT within non-existing collection', async () => {152    const owner = alice;153    const recipientUri = null;154    const royalty = null;155    const nftMetadata = 'NFT-test-metadata';156157    const tx = mintNft(158      api,159      alice,160      owner,161      maxCollectionId,162      nftMetadata,163      recipientUri,164      royalty,165    );166167    await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);168  });169170  it("[negative] unable to mint NFT by a user that isn't the owner of the collection", async () => {171    const owner = alice;172    const collectionMetadata = 'mintingCollectionMetadata';173    const collectionMax = null;174    const collectionSymbol = 'MCS';175    const recipientUri = null;176    const royalty = null;177    const nftMetadata = 'NFT-test-metadata';178179    const collectionId = await createCollection(180      api,181      alice,182      collectionMetadata,183      collectionMax,184      collectionSymbol,185    );186187    const tx = mintNft(188      api,189      bob,190      owner,191      collectionId,192      nftMetadata,193      recipientUri,194      royalty,195    );196197    await expectTxFailure(/rmrkCore\.NoPermission/, tx);198  });199200  it('[negative] unable to fetch non-existing NFT', async () => {201    const nft = await getNft(api, maxCollectionId, maxNftId);202    expect(nft.isSome).to.be.false;203  });204205  after(() => { api.disconnect(); });206});