1import { stringToU8a, u8aToString } from '@polkadot/util';
2import { assert, expect } from 'chai';
3import { alicesPublicKey } from './accounts';
4import privateKey from './substrate/privateKey';
5import usingApi from './substrate/substrate-api';
6import waitNewBlocks from './substrate/wait-new-blocks';
7
8async function createCollection(name, desk, pref, mode) {
9 await usingApi(async (api) => {
10 const alicePrivateKey = privateKey('//Alice');
11 const AcollectionCount = await api.query.nft.collectionCount();
12 try {await api.tx.nft
13 .createCollection(name, desk, pref, mode)
14 .signAndSend(alicePrivateKey);
15 await waitNewBlocks(api);
16 const BcollectionCount = await api.query.nft.collectionCount();
17
18 if (BcollectionCount === AcollectionCount) {assert.fail('Error: collection NOT created.'); }} catch { assert.fail('Create collection error.'); }
19 });
20}
21
22describe('integration test: ext. createItem():', () => {
23 it('Create new item in NFT collection', async () => {
24 await usingApi(async (api) => {
25 createCollection('1', '1', '0', 'NFT');
26 const newCollectionID = await api.query.nft.createdCollectionCount();
27 const alicePrivateKey = privateKey('//Alice');
28 const AnftItemList = await api.query.nft.itemListIndex(newCollectionID);
29 await api.tx.nft
30 .createItem(newCollectionID, alicesPublicKey, 'NFT')
31 .signAndSend(alicePrivateKey);
32 await waitNewBlocks(api);
33 const BnftItemList = await api.query.nft.itemListIndex(newCollectionID);
34 if (BnftItemList === AnftItemList) {assert.fail('Error: new item in NFT collection NOT created.'); }
35 });
36 });
37 it('Create new item in Fungible collection', async () => {
38 await usingApi(async (api) => {
39 createCollection('1', '1', '0', 'Fungible');
40 const newCollectionID = await api.query.nft.createdCollectionCount();
41 const alicePrivateKey = privateKey('//Alice');
42 const AnftItemList = await api.query.nft.itemListIndex(newCollectionID);
43 await api.tx.nft
44 .createItem(newCollectionID, alicesPublicKey, 'Fungible')
45 .signAndSend(alicePrivateKey);
46 await waitNewBlocks(api);
47 const BnftItemList = await api.query.nft.itemListIndex(newCollectionID);
48 if (BnftItemList === AnftItemList) {assert.fail('Error: new item in Fungible collection NOT created.'); }
49 });
50 });
51 it('Create new item in ReFungible collection', async () => {
52 await usingApi(async (api) => {
53 createCollection('1', '1', '0', 'ReFungible');
54 const newCollectionID = await api.query.nft.createdCollectionCount();
55 const alicePrivateKey = privateKey('//Alice');
56 const AnftItemList = await api.query.nft.itemListIndex(newCollectionID);
57 await api.tx.nft
58 .createItem(newCollectionID, alicesPublicKey, 'ReFungible')
59 .signAndSend(alicePrivateKey);
60 await waitNewBlocks(api);
61 const BnftItemList = await api.query.nft.itemListIndex(newCollectionID);
62 if (BnftItemList === AnftItemList) {assert.fail('Error: new item in ReFungible collection NOT created.'); }
63 });
64 });
65});