1234567891011121314151617import {expect} from 'chai';18import privateKey from './substrate/privateKey';19import usingApi, {executeTransaction} from './substrate/substrate-api';20import {createCollectionExpectSuccess} from './util/helpers';2122describe('createMultipleItemsEx', () => {23 it('can initialize multiple NFT with different owners', async () => {24 const collection = await createCollectionExpectSuccess({mode: {type: 'NFT'}});25 const alice = privateKey('//Alice');26 const bob = privateKey('//Bob');27 const charlie = privateKey('//Charlie');28 await usingApi(async (api) => {29 const data = [30 {31 owner: {substrate: alice.address},32 constData: '0x0000',33 variableData: '0x1111',34 }, {35 owner: {substrate: bob.address},36 constData: '0x2222',37 variableData: '0x3333',38 }, {39 owner: {substrate: charlie.address},40 constData: '0x4444',41 variableData: '0x5555',42 },43 ];4445 await executeTransaction(api, alice, api.tx.unique.createMultipleItemsEx(collection, {46 NFT: data,47 }));48 const tokens = await api.query.nonfungible.tokenData.entries(collection);49 const json = tokens.map(([, token]) => token.toJSON());50 expect(json).to.be.deep.equal(data);51 });52 });5354 it('fails when trying to set multiple owners when creating multiple refungibles', async () => {55 const collection = await createCollectionExpectSuccess({mode: {type: 'ReFungible'}});56 const alice = privateKey('//Alice');57 const bob = privateKey('//Bob');5859 await usingApi(async (api) => {60 61 const users = new Map();62 users.set(JSON.stringify({substrate: alice.address}), 1);63 users.set(JSON.stringify({substrate: bob.address}), 1);6465 66 await expect(executeTransaction(api, alice, api.tx.unique.createMultipleItemsEx(collection, {67 RefungibleMultipleItems: [68 {users},69 {users},70 ],71 }))).to.be.rejectedWith(/^refungible\.NotRefungibleDataUsedToMintFungibleCollectionToken$/);72 });73 });74});