From 5ef274a0fa7374e83b04c8a787577f67258d6cd8 Mon Sep 17 00:00:00 2001 From: PeterYinusa Date: Tue, 24 Mar 2026 22:09:30 +0000 Subject: [PATCH 1/2] refactor: replace click overloads with click() and clickRedirectsTo() --- src/controls/html-element.ts | 23 +++++++++++++---------- src/interface/controls/html-element.ts | 3 +-- src/playwright/html-element.ts | 10 ++++++---- src/webdriver/html-element.ts | 10 ++++++---- 4 files changed, 26 insertions(+), 20 deletions(-) diff --git a/src/controls/html-element.ts b/src/controls/html-element.ts index ba97c1e..f7b6e7a 100644 --- a/src/controls/html-element.ts +++ b/src/controls/html-element.ts @@ -51,19 +51,22 @@ export class HTMLElement implements IHTMLElement { /** * * Schedules a command to click on this element + * @return {*} {Promise} + * @memberof HTMLElement + */ + async click(): Promise { + return await this.callIfMethodExists('click'); + } + /** + * + * Schedules a command to click on this element and return a new page object * @template TPage - * @param {new () => TPage} [page] - * @return {*} {Promise} + * @param {new () => TPage} page + * @return {*} {Promise} * @memberof HTMLElement */ - click(): Promise; - click(page: new () => TPage): Promise; - async click(page?: new () => TPage): Promise { - if (page) { - return await this.callIfMethodExists('click', [page]); - } else { - return await this.callIfMethodExists('click'); - } + async clickRedirectsTo(page: new () => TPage): Promise { + return await this.callIfMethodExists('clickRedirectsTo', [page]); } /** * diff --git a/src/interface/controls/html-element.ts b/src/interface/controls/html-element.ts index 506432c..8140988 100644 --- a/src/interface/controls/html-element.ts +++ b/src/interface/controls/html-element.ts @@ -3,8 +3,7 @@ import { IConfirmation } from '../wallet/confirmation'; export interface IHTMLElement { click(): Promise; - click(page: new () => TPage): Promise; - click(page?: new () => TPage): Promise; + clickRedirectsTo(page: new () => TPage): Promise; clickAndSwitchToWindow(page: new () => TPage): Promise; clickAndWait(duration: number): Promise; getAttribute(attribute: string): Promise; diff --git a/src/playwright/html-element.ts b/src/playwright/html-element.ts index 84f31bf..f107e2d 100644 --- a/src/playwright/html-element.ts +++ b/src/playwright/html-element.ts @@ -31,11 +31,13 @@ export class PlaywrightHTMLElement implements IHTMLElement { return locator; } - async click(page?: new () => TPage): Promise { + async click(): Promise { await this.webElement.click({ timeout: this.timeout }); - if (page) { - return await DappDriver.getPage(page); - } + } + + async clickRedirectsTo(page: new () => TPage): Promise { + await this.webElement.click({ timeout: this.timeout }); + return await DappDriver.getPage(page); } async clickAndWait(duration: number): Promise { diff --git a/src/webdriver/html-element.ts b/src/webdriver/html-element.ts index 8916345..0ac25c3 100644 --- a/src/webdriver/html-element.ts +++ b/src/webdriver/html-element.ts @@ -42,7 +42,7 @@ export class WebDriverHTMLElement implements IHTMLElement { await this.webElement.click(); } - async click(page?: new () => TPage): Promise { + async click(): Promise { try { await this.hardClick(); } catch (err) { @@ -51,9 +51,11 @@ export class WebDriverHTMLElement implements IHTMLElement { await this.hardClick(); } } - if (page) { - return await DappDriver.getPage(page); - } + } + + async clickRedirectsTo(page: new () => TPage): Promise { + await this.click(); + return await DappDriver.getPage(page); } async clickAndWait(duration: number): Promise { From fef69a75ed1863d9838b907d9082329b8cf9a206 Mon Sep 17 00:00:00 2001 From: PeterYinusa Date: Tue, 24 Mar 2026 22:15:06 +0000 Subject: [PATCH 2/2] refactor: replace click overloads with click() and clickRedirectsTo() --- src/flask/pages/onboarding/experimental-area.ts | 2 +- src/metamask/pages/onboarding/confirm-recovery-phrase.ts | 2 +- src/metamask/pages/onboarding/create-password.ts | 4 ++-- src/metamask/pages/onboarding/import-with-recory-phrase.ts | 2 +- src/metamask/pages/onboarding/metametrics.ts | 2 +- src/metamask/pages/onboarding/review-recovery-phrase.ts | 2 +- src/metamask/pages/onboarding/welcome.ts | 4 ++-- src/rainbow/pages/onboarding/create-password.ts | 2 +- src/rainbow/pages/onboarding/import-or-connect.ts | 2 +- src/rainbow/pages/onboarding/import-seed.ts | 2 +- src/rainbow/pages/onboarding/import-select.ts | 2 +- src/rainbow/pages/onboarding/import.ts | 2 +- src/rainbow/pages/onboarding/reveal-seed.ts | 2 +- src/rainbow/pages/onboarding/seed-backup.ts | 2 +- src/rainbow/pages/onboarding/welcome.ts | 4 ++-- src/zerion/pages/onboarding/backup-recovery-phrase.ts | 2 +- src/zerion/pages/onboarding/backup.ts | 2 +- src/zerion/pages/onboarding/confirm-password.ts | 2 +- src/zerion/pages/onboarding/create.ts | 2 +- src/zerion/pages/onboarding/import-wallet.ts | 2 +- src/zerion/pages/onboarding/password.ts | 2 +- src/zerion/pages/onboarding/recovery-phrase.ts | 2 +- src/zerion/pages/onboarding/select-wallets.ts | 2 +- src/zerion/pages/onboarding/verify.ts | 2 +- src/zerion/pages/onboarding/welcome.ts | 4 ++-- 25 files changed, 29 insertions(+), 29 deletions(-) diff --git a/src/flask/pages/onboarding/experimental-area.ts b/src/flask/pages/onboarding/experimental-area.ts index 4e98f69..52ed105 100644 --- a/src/flask/pages/onboarding/experimental-area.ts +++ b/src/flask/pages/onboarding/experimental-area.ts @@ -27,6 +27,6 @@ export class ExperimentalArea extends PageObject { * @memberof ExperimentalArea */ async iAccept(): Promise { - return await this.iAcceptButton.click(Welcome); + return await this.iAcceptButton.clickRedirectsTo(Welcome); } } diff --git a/src/metamask/pages/onboarding/confirm-recovery-phrase.ts b/src/metamask/pages/onboarding/confirm-recovery-phrase.ts index 059ad40..d5d0bcb 100644 --- a/src/metamask/pages/onboarding/confirm-recovery-phrase.ts +++ b/src/metamask/pages/onboarding/confirm-recovery-phrase.ts @@ -60,6 +60,6 @@ export class ConfirmRecoveryPhrase extends PageObject { */ async confirm(): Promise { await this.confirmButton.click(); - return await this.modalButton.click(Metametrics); + return await this.modalButton.clickRedirectsTo(Metametrics); } } diff --git a/src/metamask/pages/onboarding/create-password.ts b/src/metamask/pages/onboarding/create-password.ts index 5df1660..b8c802a 100644 --- a/src/metamask/pages/onboarding/create-password.ts +++ b/src/metamask/pages/onboarding/create-password.ts @@ -65,7 +65,7 @@ export class CreatePassword extends PageObject { * @memberof CreatePassword */ async importWallet(): Promise { - return await this.submitButton.click(Metametrics); + return await this.submitButton.clickRedirectsTo(Metametrics); } /** * @@ -74,6 +74,6 @@ export class CreatePassword extends PageObject { * @memberof CreatePassword */ async createWallet(): Promise { - return await this.submitButton.click(ReviewRecoveryPhrase); + return await this.submitButton.clickRedirectsTo(ReviewRecoveryPhrase); } } diff --git a/src/metamask/pages/onboarding/import-with-recory-phrase.ts b/src/metamask/pages/onboarding/import-with-recory-phrase.ts index de28080..d08a909 100644 --- a/src/metamask/pages/onboarding/import-with-recory-phrase.ts +++ b/src/metamask/pages/onboarding/import-with-recory-phrase.ts @@ -46,6 +46,6 @@ export class ImportWithRecoveryPhrase extends PageObject { * @memberof ImportWithRecoveryPhrase */ async confirmSecretRecoveryPhrase(): Promise { - return await this.confirmButton.click(CreatePassword); + return await this.confirmButton.clickRedirectsTo(CreatePassword); } } diff --git a/src/metamask/pages/onboarding/metametrics.ts b/src/metamask/pages/onboarding/metametrics.ts index 6de103e..e044e0b 100644 --- a/src/metamask/pages/onboarding/metametrics.ts +++ b/src/metamask/pages/onboarding/metametrics.ts @@ -27,6 +27,6 @@ export class Metametrics extends PageObject { * @memberof Metametrics */ async continue(): Promise { - return await this.iAgreeButton.click(Completion); + return await this.iAgreeButton.clickRedirectsTo(Completion); } } diff --git a/src/metamask/pages/onboarding/review-recovery-phrase.ts b/src/metamask/pages/onboarding/review-recovery-phrase.ts index c6f6efc..e715ab5 100644 --- a/src/metamask/pages/onboarding/review-recovery-phrase.ts +++ b/src/metamask/pages/onboarding/review-recovery-phrase.ts @@ -39,6 +39,6 @@ export class ReviewRecoveryPhrase extends PageObject { * @memberof ReviewRecoveryPhrase */ async next(): Promise { - return await this.nextButton.click(ConfirmRecoveryPhrase); + return await this.nextButton.clickRedirectsTo(ConfirmRecoveryPhrase); } } diff --git a/src/metamask/pages/onboarding/welcome.ts b/src/metamask/pages/onboarding/welcome.ts index e20df13..582c8bb 100644 --- a/src/metamask/pages/onboarding/welcome.ts +++ b/src/metamask/pages/onboarding/welcome.ts @@ -37,7 +37,7 @@ export class Welcome extends PageObject { */ async createANewWallet(): Promise { await this.createANewWalletButton.click(); - return await this.createWithSRPButton.click(CreatePassword); + return await this.createWithSRPButton.clickRedirectsTo(CreatePassword); } /** * @@ -47,6 +47,6 @@ export class Welcome extends PageObject { */ async iHaveAnExistingWallet(): Promise { await this.importAnExistingWalletButton.click(); - return await this.importWithSRPButton.click(ImportWithRecoveryPhrase); + return await this.importWithSRPButton.clickRedirectsTo(ImportWithRecoveryPhrase); } } diff --git a/src/rainbow/pages/onboarding/create-password.ts b/src/rainbow/pages/onboarding/create-password.ts index e759308..5cf5d4d 100644 --- a/src/rainbow/pages/onboarding/create-password.ts +++ b/src/rainbow/pages/onboarding/create-password.ts @@ -53,6 +53,6 @@ export class CreatePassword extends PageObject { * @memberof CreatePassword */ async setPassword(): Promise { - return await this.setPasswordButton.click(Ready); + return await this.setPasswordButton.clickRedirectsTo(Ready); } } diff --git a/src/rainbow/pages/onboarding/import-or-connect.ts b/src/rainbow/pages/onboarding/import-or-connect.ts index b00e220..07af2de 100644 --- a/src/rainbow/pages/onboarding/import-or-connect.ts +++ b/src/rainbow/pages/onboarding/import-or-connect.ts @@ -27,6 +27,6 @@ export class ImportOrConnect extends PageObject { * @memberof ImportOrConnect */ async importWithASecretRecoveryPhraseOrPrivateKey(): Promise { - return await this.importWithASRPOrPKButton.click(Import); + return await this.importWithASRPOrPKButton.clickRedirectsTo(Import); } } diff --git a/src/rainbow/pages/onboarding/import-seed.ts b/src/rainbow/pages/onboarding/import-seed.ts index 4ebfe04..25754d0 100644 --- a/src/rainbow/pages/onboarding/import-seed.ts +++ b/src/rainbow/pages/onboarding/import-seed.ts @@ -43,6 +43,6 @@ export class ImportSeed extends PageObject { * @memberof ImportSeed */ async importWalletGroup(): Promise { - return await this.importWalletsButton.click(ImportSelect); + return await this.importWalletsButton.clickRedirectsTo(ImportSelect); } } diff --git a/src/rainbow/pages/onboarding/import-select.ts b/src/rainbow/pages/onboarding/import-select.ts index f8d4571..606076e 100644 --- a/src/rainbow/pages/onboarding/import-select.ts +++ b/src/rainbow/pages/onboarding/import-select.ts @@ -27,6 +27,6 @@ export class ImportSelect extends PageObject { * @memberof ImportSelect */ async importWalletGroup(): Promise { - return await this.addWalletsButton.click(CreatePassword); + return await this.addWalletsButton.clickRedirectsTo(CreatePassword); } } diff --git a/src/rainbow/pages/onboarding/import.ts b/src/rainbow/pages/onboarding/import.ts index 13af092..69160be 100644 --- a/src/rainbow/pages/onboarding/import.ts +++ b/src/rainbow/pages/onboarding/import.ts @@ -27,6 +27,6 @@ export class Import extends PageObject { * @memberof Import */ async importFromASecretRecoveryPhrase(): Promise { - return await this.importFromASRPButton.click(ImportSeed); + return await this.importFromASRPButton.clickRedirectsTo(ImportSeed); } } diff --git a/src/rainbow/pages/onboarding/reveal-seed.ts b/src/rainbow/pages/onboarding/reveal-seed.ts index 8650ff9..b89dcad 100644 --- a/src/rainbow/pages/onboarding/reveal-seed.ts +++ b/src/rainbow/pages/onboarding/reveal-seed.ts @@ -43,6 +43,6 @@ export class RevealSeed extends PageObject { * @memberof RevealSeed */ async iveSavedTheseWords(): Promise { - return await this.iveSavedTheseWordsButton.click(SeedVerify); + return await this.iveSavedTheseWordsButton.clickRedirectsTo(SeedVerify); } } diff --git a/src/rainbow/pages/onboarding/seed-backup.ts b/src/rainbow/pages/onboarding/seed-backup.ts index 1ecb400..34c385f 100644 --- a/src/rainbow/pages/onboarding/seed-backup.ts +++ b/src/rainbow/pages/onboarding/seed-backup.ts @@ -27,6 +27,6 @@ export class SeedBackup extends PageObject { * @memberof SeedBackup */ async revealYourRecoveryPhrase(): Promise { - return await this.revealYourRecoveryPhraseButton.click(RevealSeed); + return await this.revealYourRecoveryPhraseButton.clickRedirectsTo(RevealSeed); } } diff --git a/src/rainbow/pages/onboarding/welcome.ts b/src/rainbow/pages/onboarding/welcome.ts index af5547c..84ef7d9 100644 --- a/src/rainbow/pages/onboarding/welcome.ts +++ b/src/rainbow/pages/onboarding/welcome.ts @@ -30,7 +30,7 @@ export class Welcome extends PageObject { * @memberof Welcome */ async createANewWallet(): Promise { - return await this.createANewWalletButton.click(SeedBackup); + return await this.createANewWalletButton.clickRedirectsTo(SeedBackup); } /** * @@ -39,6 +39,6 @@ export class Welcome extends PageObject { * @memberof Welcome */ async importOrConnectAWallet(): Promise { - return await this.importOrConnectAWalletButton.click(ImportOrConnect); + return await this.importOrConnectAWalletButton.clickRedirectsTo(ImportOrConnect); } } diff --git a/src/zerion/pages/onboarding/backup-recovery-phrase.ts b/src/zerion/pages/onboarding/backup-recovery-phrase.ts index 84997a9..7cb1335 100644 --- a/src/zerion/pages/onboarding/backup-recovery-phrase.ts +++ b/src/zerion/pages/onboarding/backup-recovery-phrase.ts @@ -52,6 +52,6 @@ export class BackUpRecoveryPhrase extends PageObject { * @memberof BackUpRecoveryPhrase */ async verify(): Promise { - return await this.verifyBackUpButton.click(Verify); + return await this.verifyBackUpButton.clickRedirectsTo(Verify); } } diff --git a/src/zerion/pages/onboarding/backup.ts b/src/zerion/pages/onboarding/backup.ts index 9c39c12..06e05f1 100644 --- a/src/zerion/pages/onboarding/backup.ts +++ b/src/zerion/pages/onboarding/backup.ts @@ -39,6 +39,6 @@ export class BackUp extends PageObject { * @memberof BackUp */ async backUpNow(): Promise { - return await this.backUpNowButton.click(BackUpRecoveryPhrase); + return await this.backUpNowButton.clickRedirectsTo(BackUpRecoveryPhrase); } } diff --git a/src/zerion/pages/onboarding/confirm-password.ts b/src/zerion/pages/onboarding/confirm-password.ts index f859735..6aa3cc9 100644 --- a/src/zerion/pages/onboarding/confirm-password.ts +++ b/src/zerion/pages/onboarding/confirm-password.ts @@ -41,6 +41,6 @@ export class ConfirmPassword extends PageObject { * @memberof ConfirmPassword */ async setPassword(page: new () => TPage): Promise { - return await this.setPasswordButton.click(page); + return await this.setPasswordButton.clickRedirectsTo(page); } } diff --git a/src/zerion/pages/onboarding/create.ts b/src/zerion/pages/onboarding/create.ts index d70da3d..fadabb4 100644 --- a/src/zerion/pages/onboarding/create.ts +++ b/src/zerion/pages/onboarding/create.ts @@ -27,6 +27,6 @@ export class Create extends PageObject { * @memberof Create */ async create(): Promise { - return await this.createButton.click(BackUp); + return await this.createButton.clickRedirectsTo(BackUp); } } diff --git a/src/zerion/pages/onboarding/import-wallet.ts b/src/zerion/pages/onboarding/import-wallet.ts index 1ebfcaa..f6d4f97 100644 --- a/src/zerion/pages/onboarding/import-wallet.ts +++ b/src/zerion/pages/onboarding/import-wallet.ts @@ -27,6 +27,6 @@ export class ImportWallet extends PageObject { * @memberof ImportWallet */ async importRecoveryPhrase(): Promise { - return await this.importRecoveryPhraseButton.click(RecoveryPhrase); + return await this.importRecoveryPhraseButton.clickRedirectsTo(RecoveryPhrase); } } diff --git a/src/zerion/pages/onboarding/password.ts b/src/zerion/pages/onboarding/password.ts index 14ed124..a0b6ae4 100644 --- a/src/zerion/pages/onboarding/password.ts +++ b/src/zerion/pages/onboarding/password.ts @@ -40,6 +40,6 @@ export class Password extends PageObject { * @memberof Password */ async confirmPassword(): Promise { - return await this.confirmButton.click(ConfirmPassword); + return await this.confirmButton.clickRedirectsTo(ConfirmPassword); } } diff --git a/src/zerion/pages/onboarding/recovery-phrase.ts b/src/zerion/pages/onboarding/recovery-phrase.ts index a2d6b4b..a331260 100644 --- a/src/zerion/pages/onboarding/recovery-phrase.ts +++ b/src/zerion/pages/onboarding/recovery-phrase.ts @@ -41,6 +41,6 @@ export class RecoveryPhrase extends PageObject { * @memberof RecoveryPhrase */ async confirmSecretRecoveryPhrase(): Promise { - return await this.importWalletButton.click(SelectWallets); + return await this.importWalletButton.clickRedirectsTo(SelectWallets); } } diff --git a/src/zerion/pages/onboarding/select-wallets.ts b/src/zerion/pages/onboarding/select-wallets.ts index 0a57d9d..b71f25f 100644 --- a/src/zerion/pages/onboarding/select-wallets.ts +++ b/src/zerion/pages/onboarding/select-wallets.ts @@ -29,6 +29,6 @@ export class SelectWallets extends PageObject { * @memberof SelectWallets */ async continue(): Promise { - return await this.continueButton.click(Password); + return await this.continueButton.clickRedirectsTo(Password); } } diff --git a/src/zerion/pages/onboarding/verify.ts b/src/zerion/pages/onboarding/verify.ts index c7d7f11..0cebd94 100644 --- a/src/zerion/pages/onboarding/verify.ts +++ b/src/zerion/pages/onboarding/verify.ts @@ -51,6 +51,6 @@ export class Verify extends PageObject { * @memberof Verify */ async verify(): Promise { - return await this.verifyButton.click(Success); + return await this.verifyButton.clickRedirectsTo(Success); } } diff --git a/src/zerion/pages/onboarding/welcome.ts b/src/zerion/pages/onboarding/welcome.ts index 44864f2..5b68b3a 100644 --- a/src/zerion/pages/onboarding/welcome.ts +++ b/src/zerion/pages/onboarding/welcome.ts @@ -30,7 +30,7 @@ export class Welcome extends PageObject { * @memberof Welcome */ async createNewWallet(): Promise { - return await this.createNewWalletButton.click(Password); + return await this.createNewWalletButton.clickRedirectsTo(Password); } /** * @@ -39,6 +39,6 @@ export class Welcome extends PageObject { * @memberof Welcome */ async importExistingWallet(): Promise { - return await this.importExistingWalletButton.click(ImportWallet); + return await this.importExistingWalletButton.clickRedirectsTo(ImportWallet); } }