1import {expect} from 'chai';2import privateKey from './substrate/privateKey';3import usingApi, {executeTransaction} from './substrate/substrate-api';4import {createCollectionExpectSuccess} from './util/helpers';56describe('createMultipleItemsEx', () => {7 it('can initialize multiple NFT with different owners', async () => {8 const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});9 const alice = privateKey('//Alice');10 const bob = privateKey('//Bob');11 const charlie = privateKey('//Charlie');12 await usingApi(async (api) => {13 const data = [14 {15 owner: {substrate: alice.address},16 constData: '0x0000',17 variableData: '0x1111',18 }, {19 owner: {substrate: bob.address},20 constData: '0x2222',21 variableData: '0x3333',22 }, {23 owner: {substrate: charlie.address},24 constData: '0x4444',25 variableData: '0x5555',26 },27 ];2829 await executeTransaction(api, alice, api.tx.unique.createMultipleItemsEx(collection, {30 NFT: data,31 }));32 const tokens = await api.query.nonfungible.tokenData.entries(collection);33 const json = tokens.map(([, token]) => token.toJSON());34 expect(json).to.be.deep.equal(data);35 });36 });3738 it('fails when trying to set multiple owners when creating multiple refungibles', async () => {39 const collection = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});40 const alice = privateKey('//Alice');41 const bob = privateKey('//Bob');4243 await usingApi(async (api) => {44 45 const users = new Map();46 users.set(JSON.stringify({substrate: alice.address}), 1);47 users.set(JSON.stringify({substrate: bob.address}), 1);4849 50 await expect(executeTransaction(api, alice, api.tx.unique.createMultipleItemsEx(collection, {51 RefungibleMultipleItems: [52 {users},53 {users},54 ],55 }))).to.be.rejectedWith(/^refungible\.NotRefungibleDataUsedToMintFungibleCollectionToken$/);56 });57 });58});