git.delta.rocks / unique-network / refs/commits / 12cd6cb586e3

difftreelog

source

tests/src/setVariableMetadataSponsoringRateLimit.test.ts4.7 KiBsourcehistory
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 {expect} from 'chai';8import privateKey from './substrate/privateKey';9import usingApi from './substrate/substrate-api';10import {11  confirmSponsorshipExpectSuccess,12  createCollectionExpectSuccess,13  createItemExpectSuccess,14  findUnusedAddress,15  getDetailedCollectionInfo,16  setCollectionLimitsExpectSuccess,17  setCollectionSponsorExpectSuccess,18  setVariableMetaDataExpectFailure,19  setVariableMetaDataExpectSuccess,20} from './util/helpers';2122describe('Integration Test setVariableMetadataSponsoringRateLimit', () => {23  let alice: IKeyringPair;24  let userWithNoBalance: IKeyringPair;2526  before(async () => {27    await usingApi(async (api) => {28      alice = privateKey('//Alice');29      userWithNoBalance = await findUnusedAddress(api);30    });31  });3233  it('sponsored setVariableMetaData can be called twice with pause for free', async () => {34    const collectionId = await createCollectionExpectSuccess();35    await setCollectionSponsorExpectSuccess(collectionId, alice.address);36    await confirmSponsorshipExpectSuccess(collectionId);37    await setCollectionLimitsExpectSuccess(alice, collectionId, {38      sponsoredDataRateLimit: {Blocks: 0},39    });4041    const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);42    await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);43    await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);44  });4546  it('sponsored setVariableMetaData can\'t be called twice without pause for free', async () => {47    const collectionId = await createCollectionExpectSuccess();48    await setCollectionSponsorExpectSuccess(collectionId, alice.address);49    await confirmSponsorshipExpectSuccess(collectionId);50    await setCollectionLimitsExpectSuccess(alice, collectionId, {51      sponsoredDataRateLimit: {Blocks: 10},52    });5354    const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);55    await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1, 2, 3]);56    await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2, 3]);57  });5859  it('sponsored setVariableMetaData can\'t be called for free with variable metadata above collection limits', async () => {60    const collectionId = await createCollectionExpectSuccess();61    await setCollectionSponsorExpectSuccess(collectionId, alice.address);62    await confirmSponsorshipExpectSuccess(collectionId);63    await setCollectionLimitsExpectSuccess(alice, collectionId, {64      sponsoredDataRateLimit: {Blocks: 0},65      sponsoredDataSize: 1,66    });67    const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);6869    await setVariableMetaDataExpectSuccess(userWithNoBalance, collectionId, itemId, [1]);70    await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1, 2]);71  });7273  it('Default value of rate limit does not sponsor setting variable metadata', async () => {74    const collectionId = await createCollectionExpectSuccess();75    await setCollectionSponsorExpectSuccess(collectionId, alice.address);76    await confirmSponsorshipExpectSuccess(collectionId);7778    const itemId = await createItemExpectSuccess(alice, collectionId, 'NFT', userWithNoBalance.address);79    await setVariableMetaDataExpectFailure(userWithNoBalance, collectionId, itemId, [1]);80  });8182  it('sponsoring of data is disabled by default', async () => {83    await usingApi(async api => {84      const collectionId = await createCollectionExpectSuccess();8586      const collection = (await getDetailedCollectionInfo(api, collectionId))!;87      // limit is none = default is used88      expect(collection?.limits.sponsoredDataRateLimit.isNone);89    });90  });9192  it('sponsoring can be disabled explicitly', async () => {93    await usingApi(async api => {94      const collectionId = await createCollectionExpectSuccess();9596      await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsoredDataRateLimit: {Blocks: 6}});97      {98        const collection = (await getDetailedCollectionInfo(api, collectionId))!;99        expect(collection?.limits.sponsoredDataRateLimit.unwrap().asBlocks.toNumber()).to.equal(6);100      }101102      await setCollectionLimitsExpectSuccess(alice, collectionId, {sponsoredDataRateLimit: 'SponsoringDisabled'});103      {104        const collection = (await getDetailedCollectionInfo(api, collectionId))!;105        // disabled sponsoring = default value106        expect(collection?.limits.sponsoredDataRateLimit.unwrap().isNone).to.true;107      }108    });109  });110});