git.delta.rocks / unique-network / refs/commits / 2274edcfd83b

difftreelog

source

tests/src/rmrk/rejectNft.seqtest.ts3.0 KiBsourcehistory
1import {expect} from 'chai';2import {getApiConnection} from '../substrate/substrate-api';3import {4  createCollection,5  mintNft,6  sendNft,7  rejectNft,8} from './util/tx';9import {NftIdTuple} from './util/fetch';10import {isNftChildOfAnother, expectTxFailure, requirePallets, Pallets} from './util/helpers';1112describe('integration test: reject NFT', () => {13  let api: any;14  before(async function () {15    api = await getApiConnection();16    await requirePallets(this, [Pallets.RmrkCore]);17  });18192021  const alice = '//Alice';22  const bob = '//Bob';2324  const createTestCollection = async (issuerUri: string) => {25    return await createCollection(26      api,27      issuerUri,28      'reject-metadata',29      null,30      'rjct',31    );32  };3334  it('reject NFT', async () => {35    const ownerAlice = alice;36    const ownerBob = bob;3738    const aliceCollectionId = await createTestCollection(alice);39    const bobCollectionId = await createTestCollection(bob);4041    const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');42    const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');4344    const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];4546    await sendNft(api, 'pending', ownerBob, bobCollectionId, childNftId, newOwnerNFT);47    await rejectNft(api, alice, bobCollectionId, childNftId);4849    const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);50    expect(isChild, 'Error: rejected NFT is still a child of the target NFT').to.be.false;51  });5253  it('[negative] unable to reject NFT by a not-an-owner', async () => {54    const ownerAlice = alice;55    const ownerBob = bob;5657    const aliceCollectionId = await createTestCollection(alice);58    const bobCollectionId = await createTestCollection(bob);5960    const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, 'parent-nft-metadata');61    const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, 'child-nft-metadata');6263    const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];6465    await sendNft(api, 'pending', ownerBob, bobCollectionId, childNftId, newOwnerNFT);66    const tx = rejectNft(api, bob, bobCollectionId, childNftId);6768    await expectTxFailure(/rmrkCore\.CannotRejectNonOwnedNft/, tx);69  });7071  it('[negative] unable to reject non-existing NFT', async () => {72    const maxNftId = 0xFFFFFFFF;7374    const collectionId = await createTestCollection(alice);7576    const tx = rejectNft(api, alice, collectionId, maxNftId);7778    await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);79  });8081  it('[negative] unable to reject NFT which is not sent', async () => {82    const ownerAlice = alice;8384    const collectionId = await createTestCollection(alice);8586    const nftId = await mintNft(api, alice, ownerAlice, collectionId, 'parent-nft-metadata');8788    const tx = rejectNft(api, alice, collectionId, nftId);8990    await expectTxFailure(/rmrkCore\.CannotRejectNonPendingNft/, tx);91  });9293  after(async() => { await api.disconnect(); });94});