difftreelog
Add more event-tests
in: master
2 files changed
tests/src/sub/appPromotion/appPromotion.test.tsdiffbeforeafterboth795 const [_stake1, stake2] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});795 const [_stake1, stake2] = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});796 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake2.block));796 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake2.block));797797798 const payoutToStaker = (await helper.admin.payoutStakers(palletAdmin, 100)).find((payout) => payout.staker === staker.address)?.payout;798 const payoutToStaker = (await helper.admin.payoutStakers(palletAdmin, 100)).find((payout) => payout.staker === staker.address)!.payout;799 expect(payoutToStaker + 300n * nominal).to.equal(calculateIncome(300n * nominal));799 expect(payoutToStaker + 300n * nominal).to.equal(calculateIncome(300n * nominal));800800801 const totalStakedPerBlock = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});801 const totalStakedPerBlock = await helper.staking.getTotalStakedPerBlock({Substrate: staker.address});906 {method: 'unstakePartial' as const},906 {method: 'unstakePartial' as const},907 {method: 'unstakeAll' as const},907 {method: 'unstakeAll' as const},908 ].map(testCase => {908 ].map(testCase => {909 itSub.only('unstakePartial', async ({helper}) => {909 itSub(testCase.method, async ({helper}) => {910 const unstakeingParams = testCase.method === 'unstakePartial' ? [100n * nominal - 1n] : [];910 const unstakeParams = testCase.method === 'unstakePartial'911 ? [100n * nominal - 1n]912 : [];911 const [staker] = getAccount(1);913 const [staker] = getAccount(1);912 await helper.staking.stake(staker, 100n * nominal);914 await helper.staking.stake(staker, 100n * nominal);913 await helper.staking.stake(staker, 200n * nominal);915 await helper.staking.stake(staker, 200n * nominal);914 const {result} = await helper.executeExtrinsic(staker, `api.tx.appPromotion.${testCase.method}`, unstakeingParams);916 const {result} = await helper.executeExtrinsic(staker, `api.tx.appPromotion.${testCase.method}`, unstakeParams);915917916 const event = result.events.find(e => e.event.section === 'appPromotion' && e.event.method === 'Unstake');918 const event = result.events.find(e => e.event.section === 'appPromotion' && e.event.method === 'Unstake');919 const unstakerEvents = event?.event.data[0].toString();920 const unstakedEvents = BigInt(event?.event.data[1].toString());917 expect(event).to.exist;921 expect(unstakerEvents).to.eq(staker.address);922 expect(unstakedEvents).to.eq(testCase.method === 'unstakeAll' ? 300n * nominal : 100n * nominal - 1n);918 });923 });919 });924 });925926 itSub('stake', async ({helper}) => {927 const [staker] = getAccount(1);928 const {result} = await helper.executeExtrinsic(staker, 'api.tx.appPromotion.stake', [100n * nominal]);929930 const event = result.events.find(e => e.event.section === 'appPromotion' && e.event.method === 'Stake');931 const stakerEvents = event?.event.data[0].toString();932 const stakedEvents = BigInt(event?.event.data[1].toString());933 expect(stakerEvents).to.eq(staker.address);934 expect(stakedEvents).to.eq(100n * nominal);935 });936937 // Flaky938 itSub.skip('payoutStakers', async ({helper}) => {939 const [staker1, staker2] = getAccount(2);940 const STAKE1 = 100n * nominal;941 const STAKE2 = 200n * nominal;942 await helper.staking.stake(staker1, STAKE1);943 await helper.staking.stake(staker2, STAKE2);944945 const [stake2] = await helper.staking.getTotalStakedPerBlock({Substrate: staker2.address});946 await helper.wait.forRelayBlockNumber(rewardAvailableInBlock(stake2.block));947948 const results = await helper.admin.payoutStakers(palletAdmin, 100);949 const stakersEvents = results.filter(ev => ev.staker === staker1.address || ev.staker === staker2.address);950 expect(stakersEvents).has.length(2);951 expect(stakersEvents).has.not.ordered.members([952 {staker: staker1.address, stake: STAKE1, payout: calculateIncome(STAKE1) - STAKE1},953 {staker: staker2.address, stake: STAKE2, payout: calculateIncome(STAKE2) - STAKE2},954 ]);955 });920 });956 });921});957});922958tests/src/util/playgrounds/unique.dev.tsdiffbeforeafterboth--- a/tests/src/util/playgrounds/unique.dev.ts
+++ b/tests/src/util/playgrounds/unique.dev.ts
@@ -733,7 +733,7 @@
this.helper = helper;
}
- async payoutStakers(signer: IKeyringPair, stakersToPayout: number) {
+ async payoutStakers(signer: IKeyringPair, stakersToPayout: number): Promise<{staker: string, stake: bigint, payout: bigint}[]> {
const payoutResult = await this.helper.executeExtrinsic(signer, 'api.tx.appPromotion.payoutStakers', [stakersToPayout], true);
return payoutResult.result.events.filter(e => e.event.method === 'StakingRecalculation').map(e => {
return {