difftreelog
Positive createItem tests
in: master
2 files changed
tests/src/createItem.test.tsdiffbeforeafterboth4import { default as usingApi } from './substrate/substrate-api';
4import { default as usingApi } from './substrate/substrate-api';
5import waitNewBlocks from './substrate/wait-new-blocks';
5import waitNewBlocks from './substrate/wait-new-blocks';
6import { createCollectionExpectSuccess } from './util/helpers';
6import {
7
7 createCollectionExpectSuccess,
8 createItemExpectSuccess
9} from './util/helpers';
10
8describe('integration test: ext. createItem():', () => {
11describe.only('integration test: ext. createItem():', () => {
9 it('Create new item in NFT collection', async () => {
12 it('Create new item in NFT collection', async () => {
10 await usingApi(async (api) => {
11 const createMode = 'NFT';
13 const createMode = 'NFT';
12 const alicePrivateKey = privateKey('//Alice');
13 await createCollectionExpectSuccess('0', '0', '0', createMode);
14 const newCollectionID = await createCollectionExpectSuccess('0', '0', '0', createMode);
14 await waitNewBlocks(api);
15 const newCollectionID = await api.query.nft.createdCollectionCount();
16 const AnftItemList = await api.query.nft.itemListIndex(newCollectionID);
17 await api.tx.nft
15 await createItemExpectSuccess(newCollectionID, createMode, '//Alice');
18 .createItem(newCollectionID, alicesPublicKey, createMode)
19 .signAndSend(alicePrivateKey);
20 await waitNewBlocks(api);
21 const BnftItemList = await api.query.nft.itemListIndex(newCollectionID);
22 if (BnftItemList === AnftItemList) {assert.fail(`Error: new item in ${createMode} collection NOT created.`); }
23 });
24 });
16 });
25 it('Create new item in Fungible collection', async () => {
17 it('Create new item in Fungible collection', async () => {
26 await usingApi(async (api) => {
27 const createMode = 'Fungible';
18 const createMode = 'Fungible';
28 const alicePrivateKey = privateKey('//Alice');
29 await createCollectionExpectSuccess('0', '0', '0', createMode);
19 const newCollectionID = await createCollectionExpectSuccess('0', '0', '0', createMode);
30 await waitNewBlocks(api);
31 const newCollectionID = await api.query.nft.createdCollectionCount();
32 const AnftItemList = await api.query.nft.itemListIndex(newCollectionID);
33 await api.tx.nft
20 await createItemExpectSuccess(newCollectionID, createMode, '//Alice');
34 .createItem(newCollectionID, alicesPublicKey, createMode)
35 .signAndSend(alicePrivateKey);
36 await waitNewBlocks(api);
37 const BnftItemList = await api.query.nft.itemListIndex(newCollectionID);
38 if (BnftItemList === AnftItemList) {assert.fail(`Error: new item in ${createMode} collection NOT created.`); }
39 });
40 });
21 });
41 it('Create new item in ReFungible collection', async () => {
22 it('Create new item in ReFungible collection', async () => {
42 await usingApi(async (api) => {
43 const createMode = 'ReFungible';
23 const createMode = 'ReFungible';
44 const alicePrivateKey = privateKey('//Alice');
45 await createCollectionExpectSuccess('0', '0', '0', createMode);
24 const newCollectionID = await createCollectionExpectSuccess('0', '0', '0', createMode);
46 await waitNewBlocks(api);
47 const newCollectionID = await api.query.nft.createdCollectionCount();
48 const AnftItemList = await api.query.nft.itemListIndex(newCollectionID);
49 await api.tx.nft
25 await createItemExpectSuccess(newCollectionID, createMode, '//Alice');
50 .createItem(newCollectionID, alicesPublicKey, 'ReFungible')
51 .signAndSend(alicePrivateKey);
52 await waitNewBlocks(api);
53 const BnftItemList = await api.query.nft.itemListIndex(newCollectionID);
54 if (BnftItemList === AnftItemList) {assert.fail(`Error: new item in ${createMode} collection NOT created.`); }
55 });
56 });
26 });
57});
27});
5828tests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -121,4 +121,22 @@
bal = new BigNumber((await api.query.system.account(unused.address)).data.free.toString());
} while (bal.toFixed() != '0');
return unused;
-}
\ No newline at end of file
+}
+
+export async function createItemExpectSuccess(collectionId: number, createMode: string, senderSeed: string = '//Alice') {
+ await usingApi(async (api) => {
+
+ const AItemCount = parseInt((await api.query.nft.itemListIndex(collectionId)).toString());
+
+ const sender = privateKey(senderSeed);
+ const tx = api.tx.nft.createItem(collectionId, sender.address, createMode);
+ const events = await submitTransactionAsync(sender, tx);
+ const result = getGenericResult(events);
+
+ const BItemCount = parseInt((await api.query.nft.itemListIndex(collectionId)).toString());
+
+ // What to expect
+ expect(result.success).to.be.true;
+ expect(BItemCount).to.be.equal(AItemCount+1);
+ });
+}