From dee9f7d69f478c362c1a637cabe86426fc4de314 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Thu, 07 Apr 2022 10:15:42 +0000 Subject: [PATCH] test: basic bundle transfer --- --- /dev/null +++ b/tests/src/nesting/nest.test.ts @@ -0,0 +1,31 @@ +import {expect} from 'chai'; +import {tokenIdToAddress} from '../eth/util/helpers'; +import privateKey from '../substrate/privateKey'; +import usingApi from '../substrate/substrate-api'; +import {createCollectionExpectSuccess, createItemExpectSuccess, getTokenOwner, setCollectionLimitsExpectSuccess, transferExpectSuccess, transferFromExpectSuccess} from '../util/helpers'; + +describe('nesting', () => { + it('allows to nest/unnest token', async () => { + await usingApi(async api => { + const alice = privateKey('//Alice'); + const bob = privateKey('//Bob'); + + const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}}); + await setCollectionLimitsExpectSuccess(alice, collection, {nestingRule:{OwnerRestricted:[collection]}}); + const targetToken = await createItemExpectSuccess(alice, collection, 'NFT'); + + const nestedToken = await createItemExpectSuccess(alice, collection, 'NFT'); + + // Nest + await transferExpectSuccess(collection, nestedToken, alice, {Ethereum: tokenIdToAddress(collection, targetToken)}); + + // Move bundle to different user + await transferExpectSuccess(collection, targetToken, alice, {Substrate: bob.address}); + + // Unnest + await transferFromExpectSuccess(collection, nestedToken, bob, {Ethereum: tokenIdToAddress(collection, targetToken)}, {Substrate: bob.address}); + + expect(await getTokenOwner(api, collection, nestedToken)).to.be.deep.equal({Substrate: bob.address}); + }); + }); +}); -- gitstuff