git.delta.rocks / unique-network / refs/commits / 1fff4fcd4a6c

difftreelog

source

tests/src/setMintPermission.test.ts3.6 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 privateKey from './substrate/privateKey';8import usingApi from './substrate/substrate-api';9import {10  addToWhiteListExpectSuccess,11  createCollectionExpectSuccess,12  createItemExpectFailure,13  createItemExpectSuccess,14  destroyCollectionExpectSuccess,15  enableWhiteListExpectSuccess,16  findNotExistingCollection,17  setMintPermissionExpectFailure,18  setMintPermissionExpectSuccess,19} from './util/helpers';2021describe('Integration Test setMintPermission', () => {22  let alice: IKeyringPair;23  let bob: IKeyringPair;2425  before(async () => {26    await usingApi(async () => {27      alice = privateKey('//Alice');28      bob = privateKey('//Bob');29    });30  });3132  it('ensure white-listed non-privileged address can mint tokens', async () => {33    await usingApi(async () => {34      const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });35      await enableWhiteListExpectSuccess(alice, collectionId);36      await setMintPermissionExpectSuccess(alice, collectionId, true);37      await addToWhiteListExpectSuccess(alice, collectionId, bob.address);3839      await createItemExpectSuccess(bob, collectionId, 'NFT');40    });41  });4243  it('can be enabled twice', async () => {44    await usingApi(async () => {45      const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });46      await setMintPermissionExpectSuccess(alice, collectionId, true);47      await setMintPermissionExpectSuccess(alice, collectionId, true);48    });49  });5051  it('can be disabled twice', async () => {52    await usingApi(async () => {53      const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });54      await setMintPermissionExpectSuccess(alice, collectionId, true);55      await setMintPermissionExpectSuccess(alice, collectionId, false);56      await setMintPermissionExpectSuccess(alice, collectionId, false);57    });58  });59});6061describe('Negative Integration Test setMintPermission', () => {62  let alice: IKeyringPair;63  let bob: IKeyringPair;6465  before(async () => {66    await usingApi(async () => {67      alice = privateKey('//Alice');68      bob = privateKey('//Bob');69    });70  });7172  it('fails on not existing collection', async () => {73    await usingApi(async (api) => {74      const nonExistingCollection = await findNotExistingCollection(api);75      await setMintPermissionExpectFailure(alice, nonExistingCollection, true);76    });77  });7879  it('fails on removed collection', async () => {80    await usingApi(async () => {81      const removedCollectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });82      await destroyCollectionExpectSuccess(removedCollectionId);8384      await setMintPermissionExpectFailure(alice, removedCollectionId, true);85    });86  });8788  it('fails when not collection owner tries to set mint status', async () => {89    const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });90    await enableWhiteListExpectSuccess(alice, collectionId);91    await setMintPermissionExpectFailure(bob, collectionId, true);92  });9394  it('ensure non-white-listed non-privileged address can\'t mint tokens', async () => {95    await usingApi(async () => {96      const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });97      await enableWhiteListExpectSuccess(alice, collectionId);98      await setMintPermissionExpectSuccess(alice, collectionId, true);99100      await createItemExpectFailure(bob, collectionId, 'NFT');101    });102  });103});