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

difftreelog

source

tests/src/setContractSponsoringRateLimit.test.ts2.3 KiBsourcehistory
1import { IKeyringPair } from '@polkadot/types/types';2import privateKey from './substrate/privateKey';3import usingApi from './substrate/substrate-api';4import waitNewBlocks from './substrate/wait-new-blocks';5import { deployFlipper, toggleFlipValueExpectFailure, toggleFlipValueExpectSuccess } from './util/contracthelpers';6import {7  enableContractSponsoringExpectSuccess,8  findUnusedAddress,9  setContractSponsoringRateLimitExpectFailure,10  setContractSponsoringRateLimitExpectSuccess,11} from './util/helpers';1213describe('Integration Test setContractSponsoringRateLimit', () => {14  it('ensure sponsored contract can\'t be called twice without pause for free', async () => {15    await usingApi(async (api) => {16      const user = await findUnusedAddress(api);1718      const [flipper, deployer] = await deployFlipper(api);19      await enableContractSponsoringExpectSuccess(deployer, flipper.address, true);20      await setContractSponsoringRateLimitExpectSuccess(deployer, flipper.address, 10);21      await toggleFlipValueExpectSuccess(user, flipper);22      await toggleFlipValueExpectFailure(user, flipper);23    });24  });2526  it('ensure sponsored contract can be called twice with pause for free', async () => {27    await usingApi(async (api) => {28      const user = await findUnusedAddress(api);2930      const [flipper, deployer] = await deployFlipper(api);31      await enableContractSponsoringExpectSuccess(deployer, flipper.address, true);32      await setContractSponsoringRateLimitExpectSuccess(deployer, flipper.address, 1);33      await toggleFlipValueExpectSuccess(user, flipper);34      await waitNewBlocks(api, 1);35      await toggleFlipValueExpectSuccess(user, flipper);36    });37  });38});3940describe('Negative Integration Test setContractSponsoringRateLimit', () => {41  let alice: IKeyringPair;4243  before(async () => {44    alice = privateKey('//Alice');45  });4647  it('fails when called for non-contract address', async () => {48    await usingApi(async (api) => {49      const user = await findUnusedAddress(api);5051      await setContractSponsoringRateLimitExpectFailure(alice, user.address, 1);52    });53  });5455  it('fails when called by non-owning user', async () => {56    await usingApi(async (api) => {57      const [flipper, _] = await deployFlipper(api);5859      await setContractSponsoringRateLimitExpectFailure(alice, flipper.address, 1);60    });61  });62});