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

difftreelog

source

tests/src/collision-tests/adminLimitsOff.test.ts2.7 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  normalizeAccountId,10  waitNewBlocks,11} from '../util/helpers';1213chai.use(chaiAsPromised);14const expect = chai.expect;15let Alice: IKeyringPair;16let Bob: IKeyringPair;17let Ferdie: IKeyringPair;18let Charlie: IKeyringPair;19let Eve: IKeyringPair;20let Dave: IKeyringPair;2122before(async () => {23  await usingApi(async () => {24    Alice = privateKey('//Alice');25    Bob = privateKey('//Bob');26    Ferdie = privateKey('//Ferdie');27    Charlie = privateKey('//Charlie');28    Eve = privateKey('//Eve');29    Dave = privateKey('//Dave');30  });31});3233describe('Admin limit exceeded collection: ', () => {34  // tslint:disable-next-line: max-line-length35  it('In one block, the owner and admin add new admins to the collection more than the limit ', async () => {36    await usingApi(async (api) => {37      const collectionId = await createCollectionExpectSuccess();3839      const chainAdminLimit = (api.consts.nft.collectionAdminsLimit as any).toNumber();40      expect(chainAdminLimit).to.be.equal(5);4142      const changeAdminTx1 = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Eve.address));43      await submitTransactionAsync(Alice, changeAdminTx1);44      const changeAdminTx2 = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Dave.address));45      await submitTransactionAsync(Alice, changeAdminTx2);46      const changeAdminTx3 = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Bob.address));47      await submitTransactionAsync(Alice, changeAdminTx3);4849      const addAdmOne = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Ferdie.address));50      const addAdmTwo = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Charlie.address));51      await Promise.all([52        addAdmOne.signAndSend(Bob),53        addAdmTwo.signAndSend(Alice),54      ]);55      await waitNewBlocks(2);56      const changeAdminTx4 = api.tx.nft.addCollectionAdmin(collectionId, normalizeAccountId(Alice.address));57      await expect(submitTransactionExpectFailAsync(Alice, changeAdminTx4)).to.be.rejected;5859      const adminListAfterAddAdmin: any = (await api.query.nft.adminList(collectionId));60      expect(adminListAfterAddAdmin).to.be.contains(normalizeAccountId(Eve.address));61      expect(adminListAfterAddAdmin).to.be.contains(normalizeAccountId(Ferdie.address));62      expect(adminListAfterAddAdmin).not.to.be.contains(normalizeAccountId(Alice.address));63      await waitNewBlocks(2);64    });65  });66});