diff --git a/packages/e2e-tests/src/assert/multidelegation/MultidelegationPageAssert.ts b/packages/e2e-tests/src/assert/multidelegation/MultidelegationPageAssert.ts index 180da0690..10b076602 100644 --- a/packages/e2e-tests/src/assert/multidelegation/MultidelegationPageAssert.ts +++ b/packages/e2e-tests/src/assert/multidelegation/MultidelegationPageAssert.ts @@ -71,11 +71,11 @@ class MultidelegationPageAssert { expect(await MultidelegationPage.delegationCardChartSlices.length).to.equal(poolsCount); }; - assertSeeDelegatedPoolCards = async () => { + assertSeeDelegatedPoolCards = async (hasRewards: boolean, isPopupView: boolean) => { const poolsCount = Number(await MultidelegationPage.delegationCardPoolsValue.getText()); for (let i = 0; i < poolsCount; i++) { await this.assertSeeDelegatedPoolDetailsInfo(i); - await this.assertSeeDelegatedPoolFundsInfo(i); + await this.assertSeeDelegatedPoolFundsInfo(i, hasRewards, isPopupView); } }; @@ -103,19 +103,41 @@ class MultidelegationPageAssert { ); }; - assertSeeDelegatedPoolFundsInfo = async (index: number) => { - expect(await MultidelegationPage.delegatedPoolStakedTitle(index).getText()).to.equal( - await t('overview.stakingInfoCard.totalStaked', 'staking') + assertSeeDelegatedPoolFundsInfo = async (index: number, hasRewards: boolean, isPopupView: boolean) => { + // Total staked + expect(await MultidelegationPage.delegatedPoolTotalStakedTitle(index).getText()).to.equal( + await t('overview.stakingInfoCard.totalStaked') ); - const stakedValueNumber = (await MultidelegationPage.delegatedPoolStakedValue(index).getText()).split('tADA')[0]; - expect(stakedValueNumber).to.match(TestnetPatterns.NUMBER_DOUBLE_REGEX); + const totalStakedValueText = await MultidelegationPage.delegatedPoolTotalStakedValue(index).getText(); + expect(totalStakedValueText).to.match(TestnetPatterns.ADA_LITERAL_VALUE_REGEX); + const totalStakedValue = Number(totalStakedValueText.split('\n')[0]); + hasRewards + ? expect(totalStakedValue, 'Total staked not greater than 0!').to.be.greaterThan(0) + : expect(totalStakedValue, 'Total staked not equal to 0!').to.equal(0); + + // Last reward expect(await MultidelegationPage.delegatedPoolLastRewardsTitle(index).getText()).to.equal( - await t('overview.stakingInfoCard.lastReward', 'staking') + await t('overview.stakingInfoCard.lastReward') ); - const lastRewardsValueNumber = (await MultidelegationPage.delegatedPoolLastRewardsValue(index).getText()).split( - 'tADA' - )[0]; - expect(lastRewardsValueNumber).to.match(TestnetPatterns.NUMBER_DOUBLE_REGEX); + const lastRewardsValueText = await MultidelegationPage.delegatedPoolLastRewardsValue(index).getText(); + expect(lastRewardsValueText).to.match(TestnetPatterns.ADA_LITERAL_VALUE_REGEX); + const lastRewardsValue = Number(lastRewardsValueText.split('\n')[0]); + hasRewards + ? expect(lastRewardsValue, 'Last reward not greater than 0!').to.be.greaterThan(0) + : expect(lastRewardsValue, 'Last reward not equal to 0!').to.equal(0); + + // Total rewards (extended view only!) + if (!isPopupView) { + expect(await MultidelegationPage.delegatedPoolTotalRewardsTitle(index).getText()).to.equal( + await t('overview.stakingInfoCard.totalRewards') + ); + const totalRewardsValueText = await MultidelegationPage.delegatedPoolTotalRewardsValue(index).getText(); + expect(totalRewardsValueText).to.match(TestnetPatterns.ADA_LITERAL_VALUE_REGEX); + const totalRewardsValue = Number(totalRewardsValueText.split('\n')[0]); + hasRewards + ? expect(totalRewardsValue, 'Total reward not greater than 0!').to.be.greaterThan(0) + : expect(totalRewardsValue, 'Total rewards not equal to 0!').to.equal(0); + } }; assertSeeStakingPoolOnYourPoolsList = async (poolName: string) => { diff --git a/packages/e2e-tests/src/elements/multidelegation/MultidelegationPage.ts b/packages/e2e-tests/src/elements/multidelegation/MultidelegationPage.ts index afc6e0bd6..4e54c4ad2 100644 --- a/packages/e2e-tests/src/elements/multidelegation/MultidelegationPage.ts +++ b/packages/e2e-tests/src/elements/multidelegation/MultidelegationPage.ts @@ -55,8 +55,10 @@ class MultidelegationPage { private DELEGATED_POOL_FEE_VALUE = '[data-testid="stats-fee-container"] [data-testid="stats-value"]'; private DELEGATED_POOL_MARGIN_TITLE = '[data-testid="stats-margin-container"] [data-testid="stats-title"]'; private DELEGATED_POOL_MARGIN_VALUE = '[data-testid="stats-margin-container"] [data-testid="stats-value"]'; - private DELEGATED_POOL_STAKED_TITLE = '[data-testid="stats-total-staked-container"] [data-testid="stats-title"]'; - private DELEGATED_POOL_STAKED_VALUE = '[data-testid="stats-total-staked-container"] [data-testid="stats-value"]'; + private DELEGATED_POOL_TOTAL_STAKED_TITLE = + '[data-testid="stats-total-staked-container"] [data-testid="stats-title"]'; + private DELEGATED_POOL_TOTAL_STAKED_VALUE = + '[data-testid="stats-total-staked-container"] [data-testid="stats-value"]'; private DELEGATED_POOL_TOTAL_REWARDS_TITLE = '[data-testid="stats-total-rewards-container"] [data-testid="stats-title"]'; private DELEGATED_POOL_TOTAL_REWARDS_VALUE = @@ -267,12 +269,12 @@ class MultidelegationPage { return $$(this.DELEGATED_POOL_ITEM)[index].$(this.DELEGATED_POOL_MARGIN_VALUE); } - delegatedPoolStakedTitle(index: number): ChainablePromiseElement { - return $$(this.DELEGATED_POOL_ITEM)[index].$(this.DELEGATED_POOL_STAKED_TITLE); + delegatedPoolTotalStakedTitle(index: number): ChainablePromiseElement { + return $$(this.DELEGATED_POOL_ITEM)[index].$(this.DELEGATED_POOL_TOTAL_STAKED_TITLE); } - delegatedPoolStakedValue(index: number): ChainablePromiseElement { - return $$(this.DELEGATED_POOL_ITEM)[index].$(this.DELEGATED_POOL_STAKED_VALUE); + delegatedPoolTotalStakedValue(index: number): ChainablePromiseElement { + return $$(this.DELEGATED_POOL_ITEM)[index].$(this.DELEGATED_POOL_TOTAL_STAKED_VALUE); } delegatedPoolTotalRewardsTitle(index: number): ChainablePromiseElement { diff --git a/packages/e2e-tests/src/features/MultidelegationDelegatedFundsMultiplePoolsExtended.feature b/packages/e2e-tests/src/features/MultidelegationDelegatedFundsMultiplePoolsExtended.feature index 63a52b432..0d531683f 100644 --- a/packages/e2e-tests/src/features/MultidelegationDelegatedFundsMultiplePoolsExtended.feature +++ b/packages/e2e-tests/src/features/MultidelegationDelegatedFundsMultiplePoolsExtended.feature @@ -4,12 +4,12 @@ Feature: Staking Page - Delegated funds - Multiple pools - Extended View Background: Given Lace is ready for test - @LW-8432 @LW-8433 + @LW-8432 @LW-8433 @Pending @issue=LW-12193 Scenario: Extended View - Staking - Delegation card displays correct data When I navigate to Staking extended page And I open Overview tab Then I see Delegation card displaying correct data - And I see Delegation pool cards are displayed + And Delegation pool cards with rewards assigned are displayed in extended view @LW-9447 Scenario: Extended-view - Staking - Manage staking only one pool is expanded by default diff --git a/packages/e2e-tests/src/features/MultidelegationDelegatedFundsMultiplePoolsPopup.feature b/packages/e2e-tests/src/features/MultidelegationDelegatedFundsMultiplePoolsPopup.feature index 0d58787b5..384c6c8bc 100644 --- a/packages/e2e-tests/src/features/MultidelegationDelegatedFundsMultiplePoolsPopup.feature +++ b/packages/e2e-tests/src/features/MultidelegationDelegatedFundsMultiplePoolsPopup.feature @@ -10,10 +10,10 @@ Feature: Staking Page - Delegated funds - Multiple pools - Popup View Then I see Delegation title displayed for multidelegation And I see Delegation card displaying correct data - @LW-8338 + @LW-8338 @Pending @issue=LW-12193 Scenario: Popup View - Delegated pools cards are present When I navigate to Staking popup page - And I see Delegation pool cards are displayed + And Delegation pool cards with rewards assigned are displayed in popup view @LW-8934 @LW-8472 Scenario: Popup View - Start Staking - Delegated to multiple pools - "Expanded view" button click diff --git a/packages/e2e-tests/src/features/MultidelegationDelegatedFundsSinglePoolExtended.part1.feature b/packages/e2e-tests/src/features/MultidelegationDelegatedFundsSinglePoolExtended.part1.feature index 3584fd1fc..c77f50b60 100644 --- a/packages/e2e-tests/src/features/MultidelegationDelegatedFundsSinglePoolExtended.part1.feature +++ b/packages/e2e-tests/src/features/MultidelegationDelegatedFundsSinglePoolExtended.part1.feature @@ -37,12 +37,12 @@ Feature: Staking Page - Delegated funds - Single pool - Extended View | total rewards | | last reward | - @LW-8432 @LW-8433 + @LW-8432 @LW-8433 @Pending @issue=LW-12193 Scenario: Extended View - Staking - Delegation card displays correct data When I navigate to Staking extended page And I open Overview tab Then I see Delegation card displaying correct data - And I see Delegation pool cards are displayed + And Delegation pool cards with rewards assigned are displayed in extended view @LW-8636 Scenario: Extended View - Staking - Manage button works diff --git a/packages/e2e-tests/src/features/MultidelegationDelegatedFundsSinglePoolPopup.feature b/packages/e2e-tests/src/features/MultidelegationDelegatedFundsSinglePoolPopup.feature index 429be44b4..4b53cbb5d 100644 --- a/packages/e2e-tests/src/features/MultidelegationDelegatedFundsSinglePoolPopup.feature +++ b/packages/e2e-tests/src/features/MultidelegationDelegatedFundsSinglePoolPopup.feature @@ -10,10 +10,10 @@ Feature: Staking Page - Delegated funds - Single pool - Popup View Then I see Delegation title displayed for multidelegation And I see Delegation card displaying correct data - @LW-8338 + @LW-8338 @Pending @issue=LW-12193 Scenario: Popup View - Delegated pools cards are present When I navigate to Staking popup page - And I see Delegation pool cards are displayed + And Delegation pool cards with rewards assigned are displayed in popup view @LW-8480 Scenario Outline: Popup View - Staking - Hover over currently staking element: diff --git a/packages/e2e-tests/src/steps/multidelegationSteps.ts b/packages/e2e-tests/src/steps/multidelegationSteps.ts index 752a7df30..31cd59dc5 100644 --- a/packages/e2e-tests/src/steps/multidelegationSteps.ts +++ b/packages/e2e-tests/src/steps/multidelegationSteps.ts @@ -111,9 +111,12 @@ Then(/^I see Delegation title displayed for multidelegation$/, async () => { await MultidelegationPageAssert.assertSeeTitle(); }); -Then(/^I see Delegation pool cards are displayed$/, async () => { - await MultidelegationPageAssert.assertSeeDelegatedPoolCards(); -}); +Then( + /^Delegation pool cards (with|without) rewards assigned are displayed in (extended|popup) view$/, + async (shouldHaveRewards: 'with' | 'without', view: 'extended' | 'popup') => { + await MultidelegationPageAssert.assertSeeDelegatedPoolCards(shouldHaveRewards === 'with', view === 'popup'); + } +); When(/^I save identifiers of stake pools currently in use$/, async () => { await MultidelegationPage.saveIDsOfStakePoolsInUse();