1import {getApiConnection} from '../substrate/substrate-api';2import {expectTxFailure, requirePallets, Pallets} from './util/helpers';3import {createCollection, lockCollection, mintNft} from './util/tx';45describe('integration test: lock collection', () => {6 const Alice = '//Alice';7 const Bob = '//Bob';8 const Max = 5;910 let api: any;11 before(async function () {12 api = await getApiConnection();13 await requirePallets(this, [Pallets.RmrkCore]);14 });1516 it('lock collection', async () => {17 await createCollection(18 api,19 Alice,20 'test-metadata',21 null,22 'test-symbol',23 ).then(async (collectionId) => {24 await lockCollection(api, Alice, collectionId);25 });26 });2728 it('[negative] lock non-existing NFT collection', async () => {29 const tx = lockCollection(api, Alice, 99999);30 await expectTxFailure(/rmrkCore\.CollectionUnknown/, tx);31 });3233 it('[negative] lock not an owner NFT collection issuer', async () => {34 await createCollection(35 api,36 Alice,37 'test-metadata',38 null,39 'test-symbol',40 ).then(async (collectionId) => {41 const tx = lockCollection(api, Bob, collectionId);42 await expectTxFailure(/rmrkCore\.NoPermission/, tx);43 });44 });4546 it('lock collection with minting', async () => {47 await createCollection(48 api,49 Alice,50 'test-metadata',51 Max,52 'test-symbol',53 ).then(async (collectionId) => {54 for (let i = 0; i < 5; i++) {55 await mintNft(56 api,57 Alice,58 Alice,59 collectionId,60 'test-metadata',61 null,62 null,63 );64 }65 await lockCollection(api, Alice, collectionId, Max);66 });67 });6869 it('[negative] unable to mint NFT inside a locked collection', async () => {70 await createCollection(71 api,72 Alice,73 'test-metadata',74 Max,75 'test-symbol',76 ).then(async (collectionId) => {77 await lockCollection(api, Alice, collectionId);78 const tx = mintNft(79 api,80 Alice,81 Alice,82 collectionId,83 'test-metadata',84 null,85 null,86 );87 await expectTxFailure(/rmrkCore\.CollectionFullOrLocked/, tx);88 });89 });9091 it('[negative] unable to mint NFT inside a full collection', async () => {92 await createCollection(api, Alice, 'test-metadata', 1, 'test-symbol').then(async (collectionId) => {93 await mintNft(94 api,95 Alice,96 Alice,97 collectionId,98 'test-metadata',99 null,100 null,101 );102 const tx = mintNft(103 api,104 Alice,105 Alice,106 collectionId,107 'test-metadata',108 null,109 null,110 );111 await expectTxFailure(/rmrkCore\.CollectionFullOrLocked/, tx);112 });113 });114115 after(() => {116 api.disconnect();117 });118});