1import chai from 'chai';2import chaiAsPromised from 'chai-as-promised';3import { default as usingApi } from './substrate/substrate-api';4import {5 createCollectionExpectSuccess,6 destroyCollectionExpectSuccess,7 enableWhiteListExpectSuccess,8 addToWhiteListExpectSuccess,9 removeFromWhiteListExpectSuccess,10 isWhitelisted,11 findNotExistingCollection,12 removeFromWhiteListExpectFailure,13 disableWhiteListExpectSuccess,14} from './util/helpers';15import { IKeyringPair } from '@polkadot/types/types';16import privateKey from './substrate/privateKey';1718chai.use(chaiAsPromised);19const expect = chai.expect;2021describe('Integration Test removeFromWhiteList', () => {22 let alice: IKeyringPair;23 let bob: IKeyringPair;2425 before(async () => {26 await usingApi(async (api) => {27 alice = privateKey('//Alice');28 bob = privateKey('//Bob');29 });30 });3132 it('ensure bob is not in whitelist after removal', async () => {33 await usingApi(async () => {34 const collectionId = await createCollectionExpectSuccess({ mode: { type: 'NFT' } });35 await enableWhiteListExpectSuccess(alice, collectionId);36 await addToWhiteListExpectSuccess(alice, collectionId, bob.address);3738 await removeFromWhiteListExpectSuccess(alice, collectionId, bob.address);39 expect(await isWhitelisted(collectionId, bob.address)).to.be.false;40 });41 });4243 it('allows removal from collection with unset whitelist status', async () => {44 await usingApi(async () => {45 const collectionWithoutWhitelistId = await createCollectionExpectSuccess();46 await enableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);47 await addToWhiteListExpectSuccess(alice, collectionWithoutWhitelistId, bob.address);48 await disableWhiteListExpectSuccess(alice, collectionWithoutWhitelistId);4950 await removeFromWhiteListExpectSuccess(alice, collectionWithoutWhitelistId, bob.address);51 });52 });53});5455describe('Negative Integration Test removeFromWhiteList', () => {56 let alice: IKeyringPair;57 let bob: IKeyringPair;5859 before(async () => {60 await usingApi(async (api) => {61 alice = privateKey('//Alice');62 bob = privateKey('//Bob');63 });64 });6566 it('fails on removal from not existing collection', async () => {67 await usingApi(async (api) => {68 const collectionId = await findNotExistingCollection(api);6970 await removeFromWhiteListExpectFailure(alice, collectionId, bob.address);71 });72 });7374 it('fails on removal from removed collection', async () => {75 await usingApi(async () => {76 const collectionId = await createCollectionExpectSuccess();77 await enableWhiteListExpectSuccess(alice, collectionId);78 await addToWhiteListExpectSuccess(alice, collectionId, bob.address);79 await destroyCollectionExpectSuccess(collectionId);8081 await removeFromWhiteListExpectFailure(alice, collectionId, bob.address);82 });83 });84});