git.delta.rocks / unique-network / refs/commits / 5795d313a129

difftreelog

tests: add setVariableMetadataSponsoringRateLimit

Yaroslav Bolyukin2021-02-25parent: #91fceee.patch.diff
in: master

3 files changed

modifiedruntime_types.jsondiffbeforeafterboth
--- a/runtime_types.json
+++ b/runtime_types.json
@@ -93,7 +93,7 @@
     },
     "CollectionLimits": {
       "AccountTokenOwnershipLimit": "u32",
-      "SponsoredMintSize": "u32",
+      "SponsoredDataSize": "u32",
       "TokenLimit": "u32",
       "SponsorTimeout": "u32",
       "OwnerCanTransfer": "bool",
modifiedtests/package.jsondiffbeforeafterboth
--- a/tests/package.json
+++ b/tests/package.json
@@ -42,7 +42,8 @@
     "testEnableContractSponsoring": "mocha --timeout 9999999 -r ts-node/register ./**/enableContractSponsoring.test.ts",
     "testSetContractSponsoringRateLimit": "mocha --timeout 9999999 -r ts-node/register ./**/setContractSponsoringRateLimit.test.ts",
     "testSetOffchainSchema": "mocha --timeout 9999999 -r ts-node/register ./**/setOffchainSchema.test.ts",
-    "testOverflow": "mocha --timeout 9999999 -r ts-node/register ./**/overflow.test.ts"
+    "testOverflow": "mocha --timeout 9999999 -r ts-node/register ./**/overflow.test.ts",
+    "setVariableMetadataSponsoringRateLimit": "mocha --timeout 9999999 -r ts-node/register ./**/setVariableMetadataSponsoringRateLimit.test.ts"
   },
   "author": "",
   "license": "SEE LICENSE IN ../LICENSE",
addedtests/src/setVariableMetadataSponsoringRateLimit.test.tsdiffbeforeafterboth
after · tests/src/setVariableMetadataSponsoringRateLimit.test.ts
1//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56import { IKeyringPair } from '@polkadot/types/types';7import privateKey from './substrate/privateKey';8import usingApi from './substrate/substrate-api';9import {10  confirmSponsorshipExpectSuccess,11  createCollectionExpectSuccess,12  createItemExpectSuccess,13  findNotExistingCollection,14  findUnusedAddress,15  setCollectionLimitsExpectSuccess,16  setCollectionSponsorExpectSuccess,17  setVariableMetaDataExpectFailure,18  setVariableMetaDataExpectSuccess,19  setVariableMetaDataSponsoringRateLimitExpectFailure,20  setVariableMetaDataSponsoringRateLimitExpectSuccess,21} from './util/helpers';2223describe('Integration Test setVariableMetadataSponsoringRateLimit', () => {24  let alice: IKeyringPair;25  let userWithNoBalance: IKeyringPair;2627  before(async () => {28    await usingApi(async (api) => {29      alice = privateKey('//Alice');30      userWithNoBalance = await findUnusedAddress(api);31    });32  });3334  it('sponsored setVariableMetaData can be called twice with pause for free', async () => {35    const collectionId = await createCollectionExpectSuccess();36    await setCollectionSponsorExpectSuccess(collectionId, alice.address);37    await confirmSponsorshipExpectSuccess(collectionId);38    await setVariableMetaDataSponsoringRateLimitExpectSuccess(alice, collectionId, 1);3940    const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);41    await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);42    await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);43  });4445  it('sponsored setVariableMetaData can\'t be called twice without pause for free', async () => {46    const collectionId = await createCollectionExpectSuccess();47    await setCollectionSponsorExpectSuccess(collectionId, alice.address);48    await confirmSponsorshipExpectSuccess(collectionId);49    await setVariableMetaDataSponsoringRateLimitExpectSuccess(alice, collectionId, 10);5051    const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);52    await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);53    await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2, 3]);54  });5556  it('sponsored setVariableMetaData can\'t be called for free with variable metadata above collection limits', async () => {57    const collectionId = await createCollectionExpectSuccess();58    await setCollectionSponsorExpectSuccess(collectionId, alice.address);59    await confirmSponsorshipExpectSuccess(collectionId);60    await setVariableMetaDataSponsoringRateLimitExpectSuccess(alice, collectionId, 1);61    await setCollectionLimitsExpectSuccess(alice, collectionId, {62      SponsoredDataSize: 1,63    });64    const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);6566    await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1]);67    await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2]);68  });69});7071describe('Negative Integration Test setVariableMetadataSponsoringRateLimit', () => {72  let alice: IKeyringPair;73  let nonExistingCollection: number;7475  before(async () => {76    await usingApi(async (api) => {77      alice = privateKey('//Alice');78      nonExistingCollection = await findNotExistingCollection(api);79    });80  });8182  it('fails when called with non-existing collection id', async () => {83    await setVariableMetaDataSponsoringRateLimitExpectFailure(alice, nonExistingCollection, 1);84  });8586  it('fails when called by non collection sponsor', async () => {87    const collectionId = await createCollectionExpectSuccess();88    await setVariableMetaDataSponsoringRateLimitExpectFailure(alice, collectionId, 1);89  });90});