Skip to content

Commit 7aba353

Browse files
authored
test(extension): [LW-8659] add test for LW-8463 (#691)
* test(extension): add test for LW-8463 * test(extension): remove deprecated tests * test(extension): fix wdio local run issue
1 parent a5ed2a7 commit 7aba353

13 files changed

+52
-143
lines changed

packages/e2e-tests/src/assert/multidelegation/MultidelegationPageAssert.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,29 @@ class MultidelegationPageAssert {
211211
}
212212
};
213213

214+
assertSeeStakePoolRow = async (index?: number) => {
215+
const stakePoolListItem = new StakePoolListItem(index);
216+
await stakePoolListItem.container.scrollIntoView();
217+
await stakePoolListItem.logo.waitForDisplayed();
218+
await stakePoolListItem.name.waitForDisplayed();
219+
await stakePoolListItem.ticker.waitForDisplayed();
220+
await stakePoolListItem.ros.waitForDisplayed();
221+
await stakePoolListItem.saturation.waitForDisplayed();
222+
expect(await stakePoolListItem.name.getText()).to.not.be.empty;
223+
expect(await stakePoolListItem.ticker.getText()).to.not.be.empty;
224+
expect(await stakePoolListItem.ros.getText()).to.equal('-');
225+
// expect(await stakePoolListItem.ros.getText()).to.match(TestnetPatterns.PERCENT_DOUBLE_REGEX); // TODO: update when issue with ROS not returned is resolved
226+
expect(await stakePoolListItem.saturation.getText()).to.match(TestnetPatterns.PERCENT_DOUBLE_REGEX);
227+
};
228+
229+
assertSeeStakePoolRows = async () => {
230+
const rowsNumber = (await MultidelegationPage.poolsItems).length;
231+
232+
for (let i = 0; i < rowsNumber; i++) {
233+
await this.assertSeeStakePoolRow(i);
234+
}
235+
};
236+
214237
assertSeeCurrentlyStakingTooltip = async () => {
215238
await Tooltip.component.waitForDisplayed();
216239
expect(await Tooltip.label.getText()).contains(await t('overview.stakingInfoCard.tooltipFiatLabel', 'staking'));

packages/e2e-tests/src/assert/stakingPageAssert.ts

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,6 @@ import StakingErrorDrawer from '../elements/staking/StakingErrorDrawer';
1515
import { browser } from '@wdio/globals';
1616

1717
class StakingPageAssert {
18-
assertSeeTitleWithCounter = async () => {
19-
await StakingPage.title.waitForDisplayed();
20-
await StakingPage.counter.waitForDisplayed();
21-
await expect(await StakingPage.title.getText()).to.equal(await t('staking.sectionTitle'));
22-
await expect(await StakingPage.counter.getText()).to.match(TestnetPatterns.COUNTER_REGEX);
23-
};
24-
25-
assertSeeTitle = async () => {
26-
await expect(await StakingPage.title.getText()).to.equal(await t('staking.sectionTitle'));
27-
};
28-
2918
assertStakePoolSwitched = async (stakePoolName: string) => {
3019
const stakingInfoComponent = new StakingInfoComponent();
3120
await browser.waitUntil(
@@ -139,26 +128,6 @@ class StakingPageAssert {
139128
});
140129
};
141130

142-
assertSeeStakePoolRow = async (index?: number) => {
143-
const stakePoolListItem = new StakePoolListItem(index);
144-
await webTester.seeWebElement(stakePoolListItem.logo());
145-
await expect((await stakePoolListItem.getName()) as string).to.not.be.empty;
146-
await expect((await stakePoolListItem.getTicker()) as string).to.not.be.empty;
147-
await expect((await stakePoolListItem.getRos()) as string).to.match(TestnetPatterns.PERCENT_DOUBLE_REGEX);
148-
await expect((await stakePoolListItem.getCost()) as string).to.match(TestnetPatterns.STAKE_POOL_LIST_COST_REGEX);
149-
await expect((await stakePoolListItem.getSaturation()) as string).to.match(TestnetPatterns.PERCENT_DOUBLE_REGEX);
150-
};
151-
152-
assertSeeStakePoolRows = async () => {
153-
const stakePoolListItem = new StakePoolListItem();
154-
await webTester.waitUntilSeeElement(stakePoolListItem.container(), 6000);
155-
const rowsNumber = (await stakePoolListItem.getRows()).length;
156-
157-
for (let i = 1; i <= rowsNumber; i++) {
158-
await this.assertSeeStakePoolRow(i);
159-
}
160-
};
161-
162131
assertStakePoolItemsOrder = async (columnName: string, order: string) => {
163132
const stakePoolListItem = new StakePoolListItem();
164133
await webTester.waitUntilSeeElement(stakePoolListItem.container(), 60_000);
@@ -224,13 +193,6 @@ class StakingPageAssert {
224193

225194
expect(tickerList.every((ticker) => ticker === expectedTicker)).to.be.true;
226195
}
227-
228-
async waitRowsToLoad() {
229-
await browser.waitUntil(async () => (await StakingPage.rows).length > 1, {
230-
timeout: 10_000,
231-
timeoutMsg: 'failed while waiting for all pools to load'
232-
});
233-
}
234196
}
235197

236198
export default new StakingPageAssert();

packages/e2e-tests/src/elements/multidelegation/MultidelegationPage.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,13 @@ class MultidelegationPage {
320320
throw new Error(`Unsupported column name: ${columnName}`);
321321
}
322322
}
323+
324+
async waitForStakePoolListToLoad() {
325+
await browser.waitUntil(async () => (await this.poolsItems).length > 1, {
326+
timeout: 30_000,
327+
timeoutMsg: 'failed while waiting for stake pool list to load'
328+
});
329+
}
323330
}
324331

325332
export default new MultidelegationPage();

packages/e2e-tests/src/elements/multidelegation/StakePoolListItem.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ export class StakePoolListItem {
1515
this.listItem = $$(this.LIST_ITEM)[index];
1616
}
1717

18+
get container(): ChainablePromiseElement<WebdriverIO.Element | undefined> {
19+
return this.listItem;
20+
}
21+
1822
get logo(): ChainablePromiseElement<WebdriverIO.Element> {
1923
return this.listItem.$(this.LOGO);
2024
}

packages/e2e-tests/src/features/MultiDelegationPageExtended.feature

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,11 @@ Feature: Staking Page - Extended View
134134
And I click on the stake pool with name "ADA Capital"
135135
When I close the drawer by clicking close button
136136
Then Stake pool details drawer is not opened
137+
138+
@LW-8463 @Testnet @Mainnet
139+
Scenario: Extended View - Stake pool list item
140+
Given I disable showing Multidelegation beta banner
141+
And I am on Staking extended page
142+
And I click Browse pools tab
143+
And I wait for stake pool list to be populated
144+
Then Each stake pool list item contains: logo, name, ticker, ROS and saturation

packages/e2e-tests/src/features/MultiDelegationPagePopup.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Feature: Staking Page - Popup View
1111
When I navigate to Staking popup page
1212
Then I see Start Staking page in popup mode
1313

14-
@LLW-8934 @Testnet
14+
@LW-8934 @LW-8472 @Testnet
1515
Scenario: Popup View - Start Staking - "Expanded view" button click
1616
Given I am on Start Staking page in popup mode
1717
When I click "Expand view" on Start Staking page

packages/e2e-tests/src/features/NetworkSwitchingExtended.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Feature: LW: Network Switching - extended view
1414
And I wait for the transaction history to be loaded and all transactions to be confirmed
1515
Then I see <ticker> in the list of transactions
1616
When I navigate to Staking extended page
17-
And I wait for stake pool table item to be loaded
17+
And I wait for stake pool list to be populated
1818
Then I see <ticker> in the cost column
1919
And I see <ticker> in current staked pool
2020
When I click "Send" button on page header

packages/e2e-tests/src/features/StakingPageExtended.feature

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,6 @@ Feature: Staking Page - Extended Browser View
44
Background:
55
Given Wallet is synced
66

7-
@LW-2424 @Testnet @Mainnet
8-
Scenario: Extended View - Staking page is present with title and counter
9-
When I navigate to Staking extended page
10-
Then I see Staking title and counter with total number of pools displayed
11-
12-
@LW-2663 @Testnet @Mainnet
13-
Scenario: Extended View - Selecting stake pool from list opens drawer with appropriate details
14-
When I navigate to Staking extended page
15-
And I see the stake pool search control with appropriate content
16-
And I input "Capital" to the search bar
17-
And I click stake pool with name "ADA Capital"
18-
Then I see drawer with "ADA Capital" stake pool details and a button available for staking
19-
207
@LW-4024 @Pending @Testnet @Mainnet
218
#BUG input-output.atlassian.net/browse/ADP-2344
229
Scenario: Extended View - Stake pool list default sorting by ROS
@@ -52,57 +39,3 @@ Feature: Staking Page - Extended Browser View
5239
| ros |
5340
| cost |
5441
| saturation |
55-
56-
@LW-2490 @Testnet @Mainnet
57-
Scenario: Extended View - Stake pool list item
58-
When I navigate to Staking extended page
59-
Then Each stake pool list item contains:
60-
| stake pool logo |
61-
| stake pool name + ticker |
62-
| ROS value |
63-
| Cost (% + ADA) |
64-
| Saturation |
65-
66-
@LW-4559 @Testnet @Mainnet
67-
Scenario: Extended View - Staking - Close modal - Open stake pool
68-
Given I am on Staking extended page
69-
When I input "Capital" to the search bar
70-
And I click stake pool with name "ADA Capital"
71-
Then I see drawer with "ADA Capital" stake pool details and a button available for staking
72-
When I close the drawer by clicking close button
73-
Then Staking exit modal is not displayed
74-
And Drawer is not displayed
75-
76-
@Pending @LW-4560 @Testnet @Mainnet
77-
#BUG https://input-output.atlassian.net/browse/LW-7563
78-
Scenario Outline: Extended View - Staking - Close modal - Staking confirmation step - <action>
79-
Given I am on Staking extended page
80-
When I input "Capital" to the search bar
81-
And I click stake pool with name "ADA Capital"
82-
And I click "Stake on this pool" button on stake pool details drawer
83-
And "Next" button is enabled on "Staking confirmation" page
84-
And <step>
85-
Then Staking exit modal is displayed
86-
When I click "Exit" button for staking "You'll have to start again" modal
87-
Then Staking exit modal is not displayed
88-
And Drawer is not displayed
89-
Examples:
90-
| action | step |
91-
| click close button | I close the drawer by clicking close button |
92-
| click outside | I click outside the drawer |
93-
94-
@Pending @LW-4561 @Testnet
95-
#BUG https://input-output.atlassian.net/browse/LW-7563
96-
Scenario: Extended View - Staking - Close modal - Password input
97-
Given I am on Staking extended page
98-
When I input "Capital" to the search bar
99-
And I click stake pool with name "ADA Capital"
100-
And I click "Stake on this pool" button on stake pool details drawer
101-
And "Next" button is enabled on "Staking confirmation" page
102-
And I click "Next" button on staking confirmation drawer
103-
Then Staking password screen is displayed
104-
When I close the drawer by clicking close button
105-
Then Staking exit modal is displayed
106-
When I click "Cancel" button for staking "You'll have to start again" modal
107-
Then Staking exit modal is not displayed
108-
And Drawer is displayed

packages/e2e-tests/src/features/StakingPagePopup.feature

Lines changed: 0 additions & 17 deletions
This file was deleted.

packages/e2e-tests/src/steps/multidelegationSteps.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,3 +307,11 @@ Then(/^I click "Get Started" step (1|2) link$/, async (linkNumber: '1' | '2') =>
307307
Given(/^I click "Expand view" on Start Staking page$/, async () => {
308308
await StartStakingPage.clickExpandedViewBannerButton();
309309
});
310+
311+
When(/^I wait for stake pool list to be populated$/, async () => {
312+
await MultidelegationPage.waitForStakePoolListToLoad();
313+
});
314+
315+
Then(/^Each stake pool list item contains: logo, name, ticker, ROS and saturation$/, async () => {
316+
await MultidelegationPageAssert.assertSeeStakePoolRows();
317+
});

0 commit comments

Comments
 (0)