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(async() => { await api.disconnect(); });116});