difftreelog
NFTPAR-237 Integration Test changeCollectionOwner(collection_id, new_owner). Fixed tests.
in: master
4 files changed
tests/src/confirmSponsorship.test.tsdiffbeforeafterboth--- a/tests/src/confirmSponsorship.test.ts
+++ b/tests/src/confirmSponsorship.test.ts
@@ -89,7 +89,7 @@
});
it('Fungible: Transfer fees are paid by the sponsor after confirmation', async () => {
- const collectionId = await createCollectionExpectSuccess();
+ const collectionId = await createCollectionExpectSuccess({mode: 'Fungible'});
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
@@ -115,7 +115,7 @@
});
it('ReFungible: Transfer fees are paid by the sponsor after confirmation', async () => {
- const collectionId = await createCollectionExpectSuccess();
+ const collectionId = await createCollectionExpectSuccess({mode: 'ReFungible'});
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
@@ -210,7 +210,7 @@
});
it('Fungible: Sponsoring is rate limited', async () => {
- const collectionId = await createCollectionExpectSuccess();
+ const collectionId = await createCollectionExpectSuccess({mode: 'Fungible'});
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
@@ -247,7 +247,7 @@
});
it('ReFungible: Sponsoring is rate limited', async () => {
- const collectionId = await createCollectionExpectSuccess();
+ const collectionId = await createCollectionExpectSuccess({mode: 'ReFungible'});
await setCollectionSponsorExpectSuccess(collectionId, bob.address);
await confirmSponsorshipExpectSuccess(collectionId, '//Bob');
tests/src/creditFeesToTreasury.test.tsdiffbeforeafterboth1//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56import chai from 'chai';7import chaiAsPromised from 'chai-as-promised';8import { default as usingApi, submitTransactionAsync } from "./substrate/substrate-api";9import { alicesPublicKey, bobsPublicKey } from "./accounts";10import privateKey from "./substrate/privateKey";11import { BigNumber } from 'bignumber.js';12import { createCollectionExpectSuccess, getGenericResult } from './util/helpers';1314chai.use(chaiAsPromised);15const expect = chai.expect;1617const Treasury = "5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z";18const saneMinimumFee = 0.0001;19const saneMaximumFee = 0.01;2021describe('integration test: Fees must be credited to Treasury:', () => {22 it('Total issuance does not change', async () => {23 await usingApi(async (api) => {24 const totalBefore = new BigNumber((await api.query.balances.totalIssuance()).toString());2526 const alicePrivateKey = privateKey('//Alice');27 const amount = new BigNumber(1);28 const transfer = api.tx.balances.transfer(bobsPublicKey, amount.toFixed());2930 const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));3132 const totalAfter = new BigNumber((await api.query.balances.totalIssuance()).toString());3334 expect(result.success).to.be.true;35 expect(totalAfter.toFixed()).to.be.equal(totalBefore.toFixed());36 });37 });3839 it('Sender balance decreased by fee+sent amount, Treasury balance increased by fee', async () => {40 await usingApi(async (api) => {41 const alicePrivateKey = privateKey('//Alice');42 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());43 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());4445 const amount = new BigNumber(1);46 const transfer = api.tx.balances.transfer(bobsPublicKey, amount.toFixed());47 const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));4849 const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());50 const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());51 const fee = aliceBalanceBefore.minus(aliceBalanceAfter).minus(amount);52 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);5354 expect(result.success).to.be.true;55 expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());56 });57 });5859 it('Treasury balance increased by failed tx fee', async () => {60 await usingApi(async (api) => {61 const bobPrivateKey = privateKey('//Bob');62 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());63 const bobBalanceBefore = new BigNumber((await api.query.system.account(bobsPublicKey)).data.free.toString());6465 const badTx = api.tx.balances.setBalance(alicesPublicKey, 0, 0);66 const result = getGenericResult(await submitTransactionAsync(bobPrivateKey, badTx));6768 const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());69 const bobBalanceAfter = new BigNumber((await api.query.system.account(bobsPublicKey)).data.free.toString());70 const fee = bobBalanceBefore.minus(bobBalanceAfter);71 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);7273 expect(result.success).to.be.false;74 expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());75 });76 });7778 it('NFT Transactions also send fees to Treasury', async () => {79 await usingApi(async (api) => {80 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());81 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());8283 await createCollectionExpectSuccess();8485 const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());86 const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());87 const fee = aliceBalanceBefore.minus(aliceBalanceAfter);88 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);8990 expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());91 });92 });9394 it('Fees are sane', async () => {95 await usingApi(async (api) => {96 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());97 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());9899 await createCollectionExpectSuccess();100101 const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());102 const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());103 const fee = aliceBalanceBefore.minus(aliceBalanceAfter);104 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);105106 expect(fee.dividedBy(1e15).toNumber()).to.be.lessThan(0.01);107 expect(fee.dividedBy(1e15).toNumber()).to.be.greaterThan(0.0001);108 });109 });110111});1121//2// This file is subject to the terms and conditions defined in3// file 'LICENSE', which is part of this source code package.4//56import chai from 'chai';7import chaiAsPromised from 'chai-as-promised';8import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from "./substrate/substrate-api";9import { alicesPublicKey, bobsPublicKey } from "./accounts";10import privateKey from "./substrate/privateKey";11import { BigNumber } from 'bignumber.js';12import { createCollectionExpectSuccess, getGenericResult } from './util/helpers';1314chai.use(chaiAsPromised);15const expect = chai.expect;1617const Treasury = "5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z";18const saneMinimumFee = 0.0001;19const saneMaximumFee = 0.01;2021describe('integration test: Fees must be credited to Treasury:', () => {22 it('Total issuance does not change', async () => {23 await usingApi(async (api) => {24 const totalBefore = new BigNumber((await api.query.balances.totalIssuance()).toString());2526 const alicePrivateKey = privateKey('//Alice');27 const amount = new BigNumber(1);28 const transfer = api.tx.balances.transfer(bobsPublicKey, amount.toFixed());2930 const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));3132 const totalAfter = new BigNumber((await api.query.balances.totalIssuance()).toString());3334 expect(result.success).to.be.true;35 expect(totalAfter.toFixed()).to.be.equal(totalBefore.toFixed());36 });37 });3839 it('Sender balance decreased by fee+sent amount, Treasury balance increased by fee', async () => {40 await usingApi(async (api) => {41 const alicePrivateKey = privateKey('//Alice');42 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());43 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());4445 const amount = new BigNumber(1);46 const transfer = api.tx.balances.transfer(bobsPublicKey, amount.toFixed());47 const result = getGenericResult(await submitTransactionAsync(alicePrivateKey, transfer));4849 const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());50 const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());51 const fee = aliceBalanceBefore.minus(aliceBalanceAfter).minus(amount);52 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);5354 expect(result.success).to.be.true;55 expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());56 });57 });5859 it('Treasury balance increased by failed tx fee', async () => {60 await usingApi(async (api) => {61 const bobPrivateKey = privateKey('//Bob');62 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());63 const bobBalanceBefore = new BigNumber((await api.query.system.account(bobsPublicKey)).data.free.toString());6465 const badTx = api.tx.balances.setBalance(alicesPublicKey, 0, 0);66 await expect(submitTransactionExpectFailAsync(bobPrivateKey, badTx)).to.be.rejected;6768 const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());69 const bobBalanceAfter = new BigNumber((await api.query.system.account(bobsPublicKey)).data.free.toString());70 const fee = bobBalanceBefore.minus(bobBalanceAfter);71 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);7273 expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());74 });75 });7677 it('NFT Transactions also send fees to Treasury', async () => {78 await usingApi(async (api) => {79 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());80 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());8182 await createCollectionExpectSuccess();8384 const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());85 const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());86 const fee = aliceBalanceBefore.minus(aliceBalanceAfter);87 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);8889 expect(treasuryIncrease.toFixed()).to.be.equal(fee.toFixed());90 });91 });9293 it('Fees are sane', async () => {94 await usingApi(async (api) => {95 const treasuryBalanceBefore = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());96 const aliceBalanceBefore = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());9798 await createCollectionExpectSuccess();99100 const treasuryBalanceAfter = new BigNumber((await api.query.system.account(Treasury)).data.free.toString());101 const aliceBalanceAfter = new BigNumber((await api.query.system.account(alicesPublicKey)).data.free.toString());102 const fee = aliceBalanceBefore.minus(aliceBalanceAfter);103 const treasuryIncrease = treasuryBalanceAfter.minus(treasuryBalanceBefore);104105 expect(fee.dividedBy(1e15).toNumber()).to.be.lessThan(0.01);106 expect(fee.dividedBy(1e15).toNumber()).to.be.greaterThan(0.0001);107 });108 });109110});111tests/src/substrate/substrate-api.tsdiffbeforeafterboth--- a/tests/src/substrate/substrate-api.ts
+++ b/tests/src/substrate/substrate-api.ts
@@ -68,7 +68,7 @@
resolve(events);
} else if (transactionStatus == TransactionStatus.Fail) {
console.log(`Something went wrong with transaction. Status: ${status}`);
- reject("Transaction failed");
+ reject(events);
}
});
} catch (e) {
@@ -107,7 +107,7 @@
if (transactionStatus == TransactionStatus.Success) {
resolve(events);
} else if (transactionStatus == TransactionStatus.Fail) {
- reject("Transaction failed");
+ reject(events);
}
});
} catch (e) {
tests/src/util/helpers.tsdiffbeforeafterboth--- a/tests/src/util/helpers.ts
+++ b/tests/src/util/helpers.ts
@@ -7,7 +7,7 @@
import chaiAsPromised from 'chai-as-promised';
import type { AccountId, EventRecord } from '@polkadot/types/interfaces';
import { ApiPromise, Keyring } from "@polkadot/api";
-import { default as usingApi, submitTransactionAsync } from "../substrate/substrate-api";
+import { default as usingApi, submitTransactionAsync, submitTransactionExpectFailAsync } from "../substrate/substrate-api";
import privateKey from '../substrate/privateKey';
import { alicesPublicKey, nullPublicKey } from "../accounts";
import { strToUTF16, utf16ToStr, hexToStr } from '../util/util';
@@ -147,7 +147,7 @@
// Run the CreateCollection transaction
const alicePrivateKey = privateKey('//Alice');
const tx = api.tx.nft.createCollection(strToUTF16(name), strToUTF16(description), strToUTF16(tokenPrefix), mode);
- const events = await submitTransactionAsync(alicePrivateKey, tx);
+ const events = await expect(submitTransactionExpectFailAsync(alicePrivateKey, tx)).to.be.rejected;
const result = getCreateCollectionResult(events);
// Get number of collections after the transaction
@@ -187,11 +187,7 @@
// Run the DestroyCollection transaction
const alicePrivateKey = privateKey(senderSeed);
const tx = api.tx.nft.destroyCollection(collectionId);
- const events = await submitTransactionAsync(alicePrivateKey, tx);
- const result = getDestroyResult(events);
-
- // What to expect
- expect(result).to.be.false;
+ await expect(submitTransactionExpectFailAsync(alicePrivateKey, tx)).to.be.rejected;
});
}
@@ -257,11 +253,7 @@
// Run the transaction
const alicePrivateKey = privateKey('//Alice');
const tx = api.tx.nft.removeCollectionSponsor(collectionId);
- const events = await submitTransactionAsync(alicePrivateKey, tx);
- const result = getGenericResult(events);
-
- // What to expect
- expect(result.success).to.be.false;
+ await expect(submitTransactionExpectFailAsync(alicePrivateKey, tx)).to.be.rejected;
});
}
@@ -271,11 +263,7 @@
// Run the transaction
const alicePrivateKey = privateKey(senderSeed);
const tx = api.tx.nft.setCollectionSponsor(collectionId, sponsor);
- const events = await submitTransactionAsync(alicePrivateKey, tx);
- const result = getGenericResult(events);
-
- // What to expect
- expect(result.success).to.be.false;
+ await expect(submitTransactionExpectFailAsync(alicePrivateKey, tx)).to.be.rejected;
});
}
@@ -304,11 +292,7 @@
// Run the transaction
const sender = privateKey(senderSeed);
const tx = api.tx.nft.confirmSponsorship(collectionId);
- const events = await submitTransactionAsync(sender, tx);
- const result = getGenericResult(events);
-
- // What to expect
- expect(result.success).to.be.false;
+ await expect(submitTransactionExpectFailAsync(sender, tx)).to.be.rejected;
});
}