Skip to content

Commit d672a66

Browse files
authored
test: Re-enable Staking smoke test (MetaMask#16682)
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** This PR re-enables the staking smoke test and removes the dependency on the Hoodi network, since staking can also work locally on Anvil, as shown in the video below. Using Hoodi was no longer possible because external calls are no longer allowed in the mobile test framework https://github.com/user-attachments/assets/d3f26edd-841a-415e-ba99-8bfacf78a5d9 ## **Related issues** Fixes: ## **Manual testing steps** 1. Go to this page... 2. 3. ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [x] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [x] I've completed the PR template to the best of my ability - [x] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [x] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [x] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [x] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Re-enables and modernizes staking E2E coverage and aligns UI selectors/actions with the new confirm flow. > > - Rewrite `stake-action-smoke.spec.ts` to use `withFixtures` with a forked Anvil local node (mainnet fork), perform staking of `1 ETH`, verify activity, and assert wallet state; removes legacy import/send/unstake/claim flows and unskips the test > - Update E2E selectors and page object: `UNSTAKE_CONTAINER` now uses `earn.withdraw`; replace `CONTINUE` with `CONFIRM`, and rename interactions from continue→confirm > - CI: enable pooled staking in E2E builds by setting `MM_POOLED_STAKING_ENABLED='true'` in Android and iOS workflows > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 475f875. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY -->
1 parent a7537dc commit d672a66

5 files changed

Lines changed: 84 additions & 301 deletions

File tree

.github/workflows/build-android-e2e.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ jobs:
147147
SEEDLESS_ONBOARDING_ENABLED: 'true'
148148
MM_NOTIFICATIONS_UI_ENABLED: 'true'
149149
MM_SECURITY_ALERTS_API_ENABLED: 'true'
150+
MM_POOLED_STAKING_ENABLED: 'true'
150151
FEATURES_ANNOUNCEMENTS_ACCESS_TOKEN: ${{ secrets.FEATURES_ANNOUNCEMENTS_ACCESS_TOKEN }}
151152
FEATURES_ANNOUNCEMENTS_SPACE_ID: ${{ secrets.FEATURES_ANNOUNCEMENTS_SPACE_ID }}
152153
SEGMENT_WRITE_KEY_QA: ${{ secrets.SEGMENT_WRITE_KEY_QA }}

.github/workflows/build-ios-e2e.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ jobs:
3232
SEEDLESS_ONBOARDING_ENABLED: 'true'
3333
MM_NOTIFICATIONS_UI_ENABLED: 'true'
3434
MM_SECURITY_ALERTS_API_ENABLED: 'true'
35+
MM_POOLED_STAKING_ENABLED: 'true'
3536
FEATURES_ANNOUNCEMENTS_ACCESS_TOKEN: ${{ secrets.FEATURES_ANNOUNCEMENTS_ACCESS_TOKEN }}
3637
FEATURES_ANNOUNCEMENTS_SPACE_ID: ${{ secrets.FEATURES_ANNOUNCEMENTS_SPACE_ID }}
3738
SEGMENT_WRITE_KEY_QA: ${{ secrets.SEGMENT_WRITE_KEY_QA }}

e2e/pages/Stake/StakeView.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ class StakeView {
1515
return Matchers.getElementByText(StakeViewSelectors.REVIEW_BUTTON);
1616
}
1717

18-
get continueButton(): DetoxElement {
19-
return Matchers.getElementByText(StakeViewSelectors.CONTINUE);
18+
get confirmButton(): DetoxElement {
19+
return Matchers.getElementByText(StakeViewSelectors.CONFIRM);
2020
}
2121

2222
async selectAmount(amount: string): Promise<void> {
@@ -39,9 +39,9 @@ class StakeView {
3939
});
4040
}
4141

42-
async tapContinue(): Promise<void> {
43-
await Gestures.waitAndTap(this.continueButton, {
44-
elemDescription: 'Continue Button in Stake View',
42+
async tapConfirm(): Promise<void> {
43+
await Gestures.waitAndTap(this.confirmButton, {
44+
elemDescription: 'Confirm Button in Stake View',
4545
});
4646
}
4747
}

e2e/selectors/Stake/StakeView.selectors.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import enContent from '../../../locales/languages/en.json';
22

33
export const StakeViewSelectors = {
44
STAKE_CONTAINER: enContent.stake.stake_eth,
5-
UNSTAKE_CONTAINER: enContent.stake.unstake_eth,
6-
CONTINUE: enContent.stake.continue,
5+
UNSTAKE_CONTAINER: enContent.earn.withdraw,
6+
CONFIRM: enContent.stake.confirm,
77
REVIEW_BUTTON: enContent.stake.review,
88
};

0 commit comments

Comments
 (0)