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

difftreelog

source

tests/src/rmrk/acceptNft.test.ts3.7 KiBsourcehistory
1import { expect } from "chai";2import { getApiConnection } from "../substrate/substrate-api";3import {4    createCollection,5    mintNft,6    sendNft,7    acceptNft8} from "./util/tx";9import { NftIdTuple } from "./util/fetch";10import { isNftChildOfAnother, expectTxFailure } from "./util/helpers";1112describe("integration test: accept NFT", () => {13    let api: any;14    before(async () => { api = await getApiConnection(); });1516    const alice = "//Alice";17    const bob = "//Bob";1819    const createTestCollection = async (issuerUri: string) => {20        return await createCollection(21            api,22            issuerUri,23            "accept-metadata",24            null,25            "acpt"26        );27    }2829    it("accept NFT", async () => {30        const ownerAlice = alice;31        const ownerBob = bob;3233        const aliceCollectionId = await createTestCollection(alice);34        const bobCollectionId = await createTestCollection(bob);3536        const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");37        const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");3839        const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];4041        await sendNft(api, "pending", ownerBob, bobCollectionId, childNftId, newOwnerNFT);42        await acceptNft(api, alice, bobCollectionId, childNftId, newOwnerNFT);4344        const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);45        expect(isChild).to.be.true;46    });4748    it("[negative] unable to accept NFT by a not-an-owner", async () => {49        const ownerAlice = alice;50        const ownerBob = bob;5152        const aliceCollectionId = await createTestCollection(alice);53        const bobCollectionId = await createTestCollection(bob);5455        const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");56        const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");5758        const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];5960        await sendNft(api, "pending", ownerBob, bobCollectionId, childNftId, newOwnerNFT);61        const tx = acceptNft(api, bob, bobCollectionId, childNftId, newOwnerNFT);6263        await expectTxFailure(/rmrkCore\.NoPermission/, tx);64    });6566    it("[negative] unable to accept non-existing NFT", async () => {67        const collectionId = 0;68        const maxNftId = 0xFFFFFFFF;6970        const owner = alice;71        const aliceCollectionId = await createTestCollection(alice);7273        const parentNftId = await mintNft(api, alice, owner, aliceCollectionId, "parent-nft-metadata");7475        const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];7677        const tx = acceptNft(api, alice, collectionId, maxNftId, newOwnerNFT);7879        await expectTxFailure(/rmrkCore\.NoAvailableNftId/, tx);80    });8182    it("[negative] unable to accept NFT which is not sent", async () => {83        const ownerAlice = alice;84        const ownerBob = bob;8586        const aliceCollectionId = await createTestCollection(alice);87        const bobCollectionId = await createTestCollection(bob);8889        const parentNftId = await mintNft(api, alice, ownerAlice, aliceCollectionId, "parent-nft-metadata");90        const childNftId = await mintNft(api, bob, ownerBob, bobCollectionId, "child-nft-metadata");9192        const newOwnerNFT: NftIdTuple = [aliceCollectionId, parentNftId];9394        const tx = acceptNft(api, alice, bobCollectionId, childNftId, newOwnerNFT);9596        await expectTxFailure(/rmrkCore\.NoPermission/, tx);9798        const isChild = await isNftChildOfAnother(api, bobCollectionId, childNftId, newOwnerNFT);99        expect(isChild).to.be.false;100    });101102    after(() => { api.disconnect(); });103});