git.delta.rocks / unique-network / refs/commits / 86d26e3a07ad

difftreelog

source

tests/src/rmrk/mintNft.test.ts5.2 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        let collectionId = await createCollection(26            api,27            alice,28            collectionMetadata,29            collectionMax,30            collectionSymbol31        );3233        await mintNft(34            api,35            alice,36            owner,37            collectionId,38            nftMetadata,39            recipientUri,40            royalty41        );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        let collectionId = await createCollection(54            api,55            alice,56            collectionMetadata,57            collectionMax,58            collectionSymbol59        );6061        await mintNft(62            api,63            alice,64            owner,65            collectionId,66            nftMetadata,67            recipientUri,68            royalty69        );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        let collectionId = await createCollection(82            api,83            alice,84            collectionMetadata,85            collectionMax,86            collectionSymbol87        );8889        await mintNft(90            api,91            alice,92            owner,93            collectionId,94            nftMetadata,95            recipientUri,96            royalty97        );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        let collectionId = await createCollection(131            api,132            alice,133            collectionMetadata,134            collectionMax,135            collectionSymbol136        );137138        await mintNft(139            api,140            alice,141            owner,142            collectionId,143            nftMetadata,144            null, null, true,145            resources146        );147    });148149    it("[negative] unable to mint NFT within non-existing collection", async () => {150      const owner = alice;151      const recipientUri = null;152      const royalty = null;153      const nftMetadata = "NFT-test-metadata";154155      const tx = mintNft(156        api,157        alice,158        owner,159        maxCollectionId,160        nftMetadata,161        recipientUri,162        royalty163      );164165      await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);166    });167168    it("[negative] unable to mint NFT by a user that isn't the owner of the collection", async () => {169      const owner = alice;170      const collectionMetadata = "mintingCollectionMetadata";171      const collectionMax = null;172      const collectionSymbol = "MCS";173      const recipientUri = null;174      const royalty = null;175      const nftMetadata = "NFT-test-metadata";176177      let collectionId = await createCollection(178        api,179        alice,180        collectionMetadata,181        collectionMax,182        collectionSymbol183      );184185      const tx = mintNft(186        api,187        bob,188        owner,189        collectionId,190        nftMetadata,191        recipientUri,192        royalty193      );194195      await expectTxFailure(/rmrkCore\.NoPermission/, tx);196    });197198    it("[negative] unable to fetch non-existing NFT", async () => {199      const nft = await getNft(api, maxCollectionId, maxNftId);200      expect(nft.isSome).to.be.false;201    });202203    after(() => { api.disconnect(); });204});