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

difftreelog

source

tests/src/collision-tests/adminLimitsOff.test.ts2.9 KiBsourcehistory
1import { IKeyringPair } from '@polkadot/types/types';2import BN from 'bn.js';3import chai from 'chai';4import chaiAsPromised from 'chai-as-promised';5import privateKey from '../substrate/privateKey';6import usingApi, { submitTransactionAsync, submitTransactionExpectFailAsync } from '../substrate/substrate-api';7import {8  createCollectionExpectSuccess,9} from '../util/helpers';1011chai.use(chaiAsPromised);12const expect = chai.expect;13interface ITokenDataType {14  Owner: number[];15  ConstData: number[];16  VariableData: number[];17}18let Alice: IKeyringPair;19let Bob: IKeyringPair;20let Ferdie: IKeyringPair;21let Charlie: IKeyringPair;22let Eve: IKeyringPair;23let Dave: IKeyringPair;2425before(async () => {26  await usingApi(async () => {27    Alice = privateKey('//Alice');28    Bob = privateKey('//Bob');29    Ferdie = privateKey('//Ferdie');30    Charlie = privateKey('//Charlie');31    Eve = privateKey('//Eve');32    Dave = privateKey('//Dave');33  });34});3536describe('Admin limit exceeded collection: ', () => {37  // tslint:disable-next-line: max-line-length38  it('In one block, the owner and admin add new admins to the collection more than the limit ', async () => {39    await usingApi(async (api) => {40      const collectionId = await createCollectionExpectSuccess();4142      const chainLimit = await api.query.nft.chainLimit() as unknown as { CollectionAdminsLimit: BN };43      const chainAdminLimit = chainLimit.CollectionAdminsLimit.toNumber();44      expect(chainAdminLimit).to.be.equal(5);4546      const changeAdminTx1 = api.tx.nft.addCollectionAdmin(collectionId, Eve.address);47      await submitTransactionAsync(Alice, changeAdminTx1);48      const changeAdminTx2 = api.tx.nft.addCollectionAdmin(collectionId, Dave.address);49      await submitTransactionAsync(Alice, changeAdminTx2);50      const changeAdminTx3 = api.tx.nft.addCollectionAdmin(collectionId, Bob.address);51      await submitTransactionAsync(Alice, changeAdminTx3);5253      const timeoutPromise = (timeout: number) => new Promise((resolve) => setTimeout(resolve, timeout));54      //55      const addAdmOne = api.tx.nft.addCollectionAdmin(collectionId, Ferdie.address);56      const addAdmTwo = api.tx.nft.addCollectionAdmin(collectionId, Charlie.address);57      await Promise.all58      ([59        addAdmOne.signAndSend(Bob),60        addAdmTwo.signAndSend(Alice),61      ]);62      await timeoutPromise(10000);63      const changeAdminTx4 = api.tx.nft.addCollectionAdmin(collectionId, Alice.address);64      // tslint:disable-next-line: no-unused-expression65      expect(submitTransactionExpectFailAsync(Alice, changeAdminTx4)).to.be.rejected;6667      const adminListAfterAddAdmin: any = (await api.query.nft.adminList(collectionId));68      expect(adminListAfterAddAdmin).to.be.contains(Eve.address);69      expect(adminListAfterAddAdmin).to.be.contains(Ferdie.address);70      expect(adminListAfterAddAdmin).not.to.be.contains(Alice.address);71      await timeoutPromise(20000);72    });73  });74});