git.delta.rocks / unique-network / refs/commits / ffadfaaae655

difftreelog

setConstOnChainSchema test

Antz0x0z2021-01-25parent: #0614099.patch.diff
in: master

2 files changed

addedtests/.vscode/settings.jsondiffbeforeafterboth
--- /dev/null
+++ b/tests/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+    "mocha.enabled": true
+}
\ No newline at end of file
addedtests/src/setConstOnChainSchema.test.tsdiffbeforeafterboth
after · tests/src/setConstOnChainSchema.test.ts
1import { Keyring } from '@polkadot/api';2import { IKeyringPair } from '@polkadot/types/types';3import chai from 'chai';4import chaiAsPromised from 'chai-as-promised';5import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from './substrate/substrate-api';6import {7  createCollectionExpectSuccess,8  destroyCollectionExpectSuccess,9} from './util/helpers';1011chai.use(chaiAsPromised);12const expect = chai.expect;1314let Alice: IKeyringPair;15let Bob: IKeyringPair;16let Shema: any;17let largeShema: any;1819before(async () => {20  await usingApi(async (api) => {21    const keyring = new Keyring({ type: 'sr25519' });22    Alice = keyring.addFromUri('//Alice');23    Bob = keyring.addFromUri('//Bob');24    Shema = '0x31';25    largeShema = '0x391d2323232320486572652077696c6c20626520666f7572206e6f6465732023232323\26    0a0a0a232064697361626c65206d646e730a2320666f7263652049503420636f6e6e656374696f6e730a23\27    2066696c74657220636f6e6e656374696f6e732077697468207566770a0a0a0a0a232056616c696461746f\28    7220310a0a0a2e2f6e6674205c0a2d2d626173652d70617468202f746d702f616c696365205c0a2d2d6368\29    61696e206c6f63616c205c0a2d2d616c696365205c0a2d2d6e6f64652d6b65792030303030303030303030\30    30303030303030303030303030303030303030303030303030303030303030303030303030303030303030\31    3030303030303030303031205c0a2d2d74656c656d657472792d75726c20277773733a2f2f74656c656d65\32    7472792e706f6c6b61646f742e696f2f7375626d69742f203027205c0a2d2d76616c696461746f72205c0a\33    2d2d6e6f2d6d646e73205c0a2d2d6c697374656e2d616464723d2f6970342f302e302e302e302f7463702f\34    3330333333205c0a2d6c747261636520263e2056616c696461746f72312e6c6f670a0a2320446563203037\35    2031393a33303a33392e3832312020494e464f20f09f8fb720204c6f63616c206e6f6465206964656e7469\36    74792069733a20313244334b6f6f5745796f70704e43557838597836366f5639664a6e7269587743635877\37    44445541326b6a36766e63366944457020286c656761637920726570726573656e746174696f6e3a203132\38    44334b6f6f5745796f70704e43557838597836366f5639664a6e726958774363587744445541326b6a3676\39    6e63366944457029202020200a0a0a232056616c696461746f7220320a0a0a0a2e2f6e6674205c0a2d2d62\40    6173652d70617468202f746d702f626f62205c0a2d2d636861696e206c6f63616c205c0a2d2d626f62205c\41    0a2d2d74656c656d657472792d75726c20277773733a2f2f74656c656d657472792e706f6c6b61646f742e\42    696f2f7375626d69742f203027205c0a2d2d76616c696461746f72205c0a2d2d6e6f2d6d646e73205c0a2d\43    2d6c697374656e2d616464723d2f6970342f302e302e302e302f7463702f3330333333205c0a2d2d626f6f\44    746e6f646573202f6970342f31302e3231312e35352e392f7463702f33303333332f7032702f313244334b\45    6f6f5745796f70704e43557838597836366f5639664a6e726958774363587744445541326b6a36766e6336\46    69444570205c0a2d6c747261636520263e2056616c696461746f72322e6c6f670a0a232044656320303720\47    31393a33373a30312e3535322020494e464f20f09f8fb720204c6f63616c206e6f6465206964656e746974\48    792069733a20313244334b6f6f574d6f69635a62595266676a714d396f5965354a774b63467644635a5250\49    4843707856316762665057514d327720286c656761637920726570726573656e746174696f6e3a20313244\50    334b6f6f574d6f69635a62595266676a714d396f5965354a774b63467644635a5250484370785631676266\51    5057514d327729202020200a0a0a0a23204761746577617920310a0a0a2e2f6e6674205c0a2d2d62617365\52    2d70617468202f746d702f6761746577617931205c0a2d2d636861696e206c6f63616c205c0a2d2d6e616d\53    652047617465576179205c0a2d2d77732d65787465726e616c205c0a2d2d7270632d636f727320616c6c20\54    5c0a2d2d6e6f2d6d646e73205c0a2d2d6c697374656e2d616464723d2f6970342f302e302e302e302f7463\55    702f3330333333205c0a2d2d626f6f746e6f646573202f6970342f31302e3231312e35352e392f7463702f\56    33303333332f7032702f313244334b6f6f5745796f70704e43557838597836366f5639664a6e7269587743\57    63587744445541326b6a36766e633669444570202f6970342f31302e3231312e35352e31302f7463702f33\58    303333332f7032702f313244334b6f6f574d6f69635a62595266676a714d396f5965354a774b6346764463\59    5a52504843707856316762665057514d3277202d6c747261636520263e2047617465776179312e6c6f670a\60    0a0a23204761746577617920320a0a0a2e2f6e6674205c0a2d2d626173652d70617468202f746d702f6761\61    746577617932205c0a2d2d636861696e206c6f63616c205c0a2d2d6e616d652047617465576179205c0a2d\62    2d77732d65787465726e616c205c0a2d2d7270632d636f727320616c6c205c0a2d2d6e6f2d6d646e73205c\63    0a2d2d6c697374656e2d616464723d2f6970342f302e302e302e302f7463702f3330333333205c0a2d2d62\64    6f6f746e6f646573202f6970342f31302e3231312e35352e392f7463702f33303333332f7032702f313244\65    334b6f6f5745796f70704e43557838597836366f5639664a6e726958774363587744445541326b6a36766e\66    633669444570202f6970342f31302e3231312e35352e31302f7463702f33303333332f7032702f31324433\67    4b6f6f574346456166744d4373503842596144764d45735362555065454256366554674e726e6b37425675\68    51726e5666202d6c747261636520263e2047617465776179322e6c6f670a0a';69  });70});71describe('Integration Test ext. setConstOnChainSchema()', () => {7273  it('Run extrinsic with parameters of the collection id, set the scheme', async () => {74      await usingApi(async (api) => {75      const collectionId = await createCollectionExpectSuccess();76      const collection: any = (await api.query.nft.collection(collectionId));77      expect(collection.Owner.toString()).to.be.eq(Alice.address);78      const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);79      await submitTransactionAsync(Alice, setShema);80    });81});8283  it('Checking collection data using the ConstOnChainSchema parameter', async () => {84      await usingApi(async (api) => {85        const collectionId = await createCollectionExpectSuccess();86        const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);87        await submitTransactionAsync(Alice, setShema);88        const collection: any = (await api.query.nft.collection(collectionId));89        expect(collection.ConstOnChainSchema.toString()).to.be.eq(Shema);9091    });92  });93});9495describe('Negative Integration Test ext. setConstOnChainSchema()', () => {9697  it('Set a non-existent collection', async () => {98    await usingApi(async (api) => {99      // tslint:disable-next-line: radix100      const collectionId = parseInt((await api.query.nft.createdCollectionCount()).toString()) + 1;101      const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);102      await expect(submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;103  });104});105106  it('Set a previously deleted collection', async () => {107    await usingApi(async (api) => {108      const collectionId = await createCollectionExpectSuccess();109      await destroyCollectionExpectSuccess(collectionId);110      const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);111      await expect(submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;112  });113});114115  it('Set invalid data in schema (size too large:> 1024b)', async () => {116    await usingApi(async (api) => {117      const collectionId = await createCollectionExpectSuccess();118      const setShema = api.tx.nft.setConstOnChainSchema(collectionId, largeShema);119      await expect(submitTransactionExpectFailAsync(Alice, setShema)).to.be.rejected;120  });121});122123  it('Execute method not on behalf of the collection owner', async () => {124    await usingApi(async (api) => {125      const collectionId = await createCollectionExpectSuccess();126      const collection: any = (await api.query.nft.collection(collectionId));127      expect(collection.Owner.toString()).to.be.eq(Alice.address);128      const setShema = api.tx.nft.setConstOnChainSchema(collectionId, Shema);129      await expect(submitTransactionExpectFailAsync(Bob, setShema)).to.be.rejected;130  });131});132133});