git.delta.rocks / unique-network / refs/commits / 4e9eae9cae08

difftreelog

source

tests/src/setSchemaVersion.test.ts4.8 KiBsourcehistory
1// https://unique-network.readthedocs.io/en/latest/jsapi.html#setschemaversion2import { ApiPromise, Keyring } from '@polkadot/api';3import { IKeyringPair } from '@polkadot/types/types';4import BN from 'bn.js';5import chai from 'chai';6import chaiAsPromised from 'chai-as-promised';7import usingApi, {submitTransactionAsync, submitTransactionExpectFailAsync} from './substrate/substrate-api';8import { ICollectionInterface } from './types';9import {10  createCollectionExpectSuccess,11  destroyCollectionExpectSuccess,12  getCreatedCollectionCount,13  getCreateItemResult,14  getDetailedCollectionInfo,15} from './util/helpers';1617chai.use(chaiAsPromised);18const expect = chai.expect;1920let alice: IKeyringPair;21let collectionIdForTesting: number;2223/*241. We create collection.252. Save just created collection id.263. Use this id for setSchemaVersion.27*/2829describe('hooks', () => {30  before(async () => {31    await usingApi(async () => {32      const keyring = new Keyring({ type: 'sr25519' });33      alice = keyring.addFromUri('//Alice');34    });35  });36  it('choose or create collection for testing', async () => {37    await usingApi(async () => {38      collectionIdForTesting = await createCollectionExpectSuccess({name: 'A', description: 'B', tokenPrefix: 'C', mode: 'NFT'});39    });40  });41});4243describe('setSchemaVersion positive', () => {44  let tx;45  before(async () => {46    await usingApi(async () => {47      const keyring = new Keyring({ type: 'sr25519' });48      alice = keyring.addFromUri('//Alice');49    });50  });51  it('execute setSchemaVersion with image url and unique ', async () => {52    await usingApi(async (api: ApiPromise) => {53      tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'Unique');54      const events = await submitTransactionAsync(alice, tx);55      const result = getCreateItemResult(events);56      const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;57      // tslint:disable-next-line:no-unused-expression58      expect(result.success).to.be.true;59      // tslint:disable-next-line:no-unused-expression60      expect(collectionInfo).to.be.exist;61      // tslint:disable-next-line:no-unused-expression62      expect(collectionInfo ? collectionInfo.SchemaVersion.toString() : '').to.be.equal('Unique');63    });64  });6566  it('validate schema version with just entered data', async () => {67    await usingApi(async (api: ApiPromise) => {68      tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'ImageURL');69      const events = await submitTransactionAsync(alice, tx);70      const result = getCreateItemResult(events);71      const collectionInfo = await getDetailedCollectionInfo(api, collectionIdForTesting) as ICollectionInterface;72      // tslint:disable-next-line:no-unused-expression73      expect(result.success).to.be.true;74      // tslint:disable-next-line:no-unused-expression75      expect(collectionInfo).to.be.exist;76      // tslint:disable-next-line:no-unused-expression77      expect(collectionInfo ? collectionInfo.SchemaVersion.toString() : '').to.be.equal('ImageURL');78    });79  });80});8182describe('setSchemaVersion negative', () => {83  let tx;84  before(async () => {85    await usingApi(async () => {86      const keyring = new Keyring({ type: 'sr25519' });87      alice = keyring.addFromUri('//Alice');88    });89  });90  it('execute setSchemaVersion for not exists collection', async () => {91    await usingApi(async (api: ApiPromise) => {92      const collectionCount = await getCreatedCollectionCount(api);93      const nonExistedCollectionId = collectionCount + 1;94      tx = api.tx.nft.setSchemaVersion(nonExistedCollectionId, 'ImageURL');95      await expect(submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;96      /*try {97        await submitTransactionAsync(alice, tx);98      } catch (e) {99        // tslint:disable-next-line:no-unused-expression100        expect(e).to.be.exist;101      }*/102    });103  });104105  it('execute setSchemaVersion with not correct schema version', async () => {106    await usingApi(async (api: ApiPromise) => {107      try {108        tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'Test');109        await submitTransactionAsync(alice, tx);110      } catch (e) {111        // tslint:disable-next-line:no-unused-expression112        expect(e).to.be.exist;113      }114    });115  });116117  it('execute setSchemaVersion for deleted collection', async () => {118    await usingApi(async (api: ApiPromise) => {119      await destroyCollectionExpectSuccess(collectionIdForTesting);120      tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'ImageURL');121      await expect(submitTransactionExpectFailAsync(alice, tx)).to.be.rejected;122      /*try {123        tx = api.tx.nft.setSchemaVersion(collectionIdForTesting, 'ImageURL');124        await submitTransactionAsync(alice, tx);125      } catch (e) {126        // tslint:disable-next-line:no-unused-expression127        expect(e).to.be.exist;128      }*/129    });130  });131});