git.delta.rocks / unique-network / refs/commits / 8484aa77f543

difftreelog

source

tests/src/metadataUpdate.test.ts7.9 KiBsourcehistory
12//3// This file is subject to the terms and conditions defined in4// file 'LICENSE', which is part of this source code package.5//67import chai from 'chai';8import chaiAsPromised from 'chai-as-promised';9import privateKey from './substrate/privateKey';10import usingApi from './substrate/substrate-api';11import {12  createItemExpectSuccess,13  createCollectionExpectSuccess,14  enablePublicMintingExpectSuccess,15  enableWhiteListExpectSuccess,16  setMetadataUpdatePermissionFlagExpectSuccess,17  setVariableMetaDataExpectSuccess,18  setMintPermissionExpectSuccess,19  addToWhiteListExpectSuccess,20  addCollectionAdminExpectSuccess,21  setVariableMetaDataExpectFailure,22  setMetadataUpdatePermissionFlagExpectFailure,23} from './util/helpers';2425chai.use(chaiAsPromised);2627describe('Metadata update permissions with ItemOwner flag', () => {28  it('ItemOwner can set variable metadata with ItemOwner permission flag', async () => {29    await usingApi(async () => {30      const Alice = privateKey('//Alice');3132      const data = [1, 2, 254, 255];3334      // nft35      const nftCollectionId = await createCollectionExpectSuccess();36      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');37      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'ItemOwner');3839      await setVariableMetaDataExpectSuccess(Alice, nftCollectionId, newNftTokenId, data);40    });41  });4243  it('Admin can\'n set variable metadata with ItemOwner permission flag', async () => {44    await usingApi(async () => {45      const Alice = privateKey('//Alice');46      const Bob = privateKey('//Bob');47  48      const data = [1, 2, 254, 255];49  50      // nft51      const nftCollectionId = await createCollectionExpectSuccess();52      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');53      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'ItemOwner');5455      await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);56      await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);57      await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);58  59      await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);60    });61  });6263  it('User can\'n set variable metadata with ItemOwner permission flag', async () => {64    await usingApi(async () => {65      const Alice = privateKey('//Alice');66      const Bob = privateKey('//Bob');67  68      const data = [1, 2, 254, 255];69  70      // nft71      const nftCollectionId = await createCollectionExpectSuccess();72      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');73      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'ItemOwner');7475      await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);  76      await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);77    });78  });79});8081describe('Metadata update permissions with Admin flag', () => {82  it('Admin can set variable metadata with Admin permission flag', async () => {83    await usingApi(async () => {84      const Alice = privateKey('//Alice');85      const Bob = privateKey('//Bob');86  87      const data = [1, 2, 254, 255];88  89      // nft90      const nftCollectionId = await createCollectionExpectSuccess();91      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');92      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'Admin');9394      await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);95      await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);96      await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);97  98      await setVariableMetaDataExpectSuccess(Bob, nftCollectionId, newNftTokenId, data);99    });100  });101102  it('User can\'n can set variable metadata with Admin permission flag', async () => {103    await usingApi(async () => {104      const Alice = privateKey('//Alice');105      const Bob = privateKey('//Bob');106  107      const data = [1, 2, 254, 255];108  109      // nft110      const nftCollectionId = await createCollectionExpectSuccess();111      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');112      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'Admin');113114      await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);115      await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);116      await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);117  118      await setVariableMetaDataExpectSuccess(Bob, nftCollectionId, newNftTokenId, data);119    });120  });121122  it('ItemOwner can\'n can set variable metadata with Admin permission flag', async () => {123    await usingApi(async () => {124      const Alice = privateKey('//Alice');125      const Bob = privateKey('//Bob');126  127      const data = [1, 2, 254, 255];128  129      // nft130      const nftCollectionId = await createCollectionExpectSuccess();131      await enablePublicMintingExpectSuccess(Alice, nftCollectionId);132      await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);133      await enableWhiteListExpectSuccess(Alice, nftCollectionId);134      const newNftTokenId = await createItemExpectSuccess(Bob, nftCollectionId, 'NFT');135      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'Admin');136  137      await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);138    });139  });140});141142describe('Metadata update permissions with None flag', () => {143  it('Nobody can set variable metadata with None flag (Regular)', async () => {144    await usingApi(async () => {145      const Alice = privateKey('//Alice');146      const Bob = privateKey('//Bob');147  148      const data = [1, 2, 254, 255];149  150      // nft151      const nftCollectionId = await createCollectionExpectSuccess();152      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');153      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'None');154  155      await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);156    });157  });158159  it('Nobody can set variable metadata with None flag (Admin)', async () => {160    await usingApi(async () => {161      const Alice = privateKey('//Alice');162      const Bob = privateKey('//Bob');163  164      const data = [1, 2, 254, 255];165  166      // nft167      const nftCollectionId = await createCollectionExpectSuccess();168      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');169      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'None');170  171      await setMintPermissionExpectSuccess(Alice, nftCollectionId, true);172      await addToWhiteListExpectSuccess(Alice, nftCollectionId, Bob.address);173      await addCollectionAdminExpectSuccess(Alice, nftCollectionId, Bob);174  175      await setVariableMetaDataExpectFailure(Bob, nftCollectionId, newNftTokenId, data);176    });177  });178179  it('Nobody can set variable metadata with None flag (ItemOwner)', async () => {180    await usingApi(async () => {181      const Alice = privateKey('//Alice');182  183      const data = [1, 2, 254, 255];184  185      // nft186      const nftCollectionId = await createCollectionExpectSuccess();187      const newNftTokenId = await createItemExpectSuccess(Alice, nftCollectionId, 'NFT');188      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'None');189  190      await setVariableMetaDataExpectFailure(Alice, nftCollectionId, newNftTokenId, data);191    });192  });193194  it('Nobody can set variable metadata flag after freeze', async () => {195    await usingApi(async () => {196      const Alice = privateKey('//Alice');197  198      // nft199      const nftCollectionId = await createCollectionExpectSuccess();200      await setMetadataUpdatePermissionFlagExpectSuccess(Alice, nftCollectionId, 'None');201      await setMetadataUpdatePermissionFlagExpectFailure(Alice, nftCollectionId, 'Admin');       202    });203  });204});