From 721d69f62448bd6744633246ceb964eb9119e9e9 Mon Sep 17 00:00:00 2001 From: Lukasz Jagiela Date: Wed, 19 Feb 2025 19:43:15 +0100 Subject: [PATCH] test: lw-12256 add tests for debugging switch --- packages/e2e-tests/src/assert/consoleAssert.ts | 10 ++++++++++ .../features/SettingsPageExtended.part2.feature | 14 +++++++++++++- .../src/features/SettingsPagePopup.part2.feature | 14 +++++++++++++- .../src/pageobject/settingsExtendedPageObject.ts | 9 ++++++++- packages/e2e-tests/src/steps/commonSteps.ts | 4 ++++ packages/e2e-tests/src/steps/settingsSteps.ts | 11 ++++++++--- 6 files changed, 56 insertions(+), 6 deletions(-) diff --git a/packages/e2e-tests/src/assert/consoleAssert.ts b/packages/e2e-tests/src/assert/consoleAssert.ts index e0482a63c5..5d2b6d8cf1 100644 --- a/packages/e2e-tests/src/assert/consoleAssert.ts +++ b/packages/e2e-tests/src/assert/consoleAssert.ts @@ -7,5 +7,15 @@ class ConsoleAssert { const errors: ConsoleLogEntry[] = logs.filter((log) => log.level === 'error'); expect(errors).is.empty; }; + + assertLogsAreCollected = async (shouldBeCollected: boolean) => { + await browser.pause(1000); // some delay to let logs populate + const logs: ConsoleLogEntry[] = await consoleManager.getLogs(); + if (shouldBeCollected) { + expect(logs.length).to.be.greaterThan(10); + } else { + expect(logs).is.empty; + } + }; } export default new ConsoleAssert(); diff --git a/packages/e2e-tests/src/features/SettingsPageExtended.part2.feature b/packages/e2e-tests/src/features/SettingsPageExtended.part2.feature index d209d40ab0..247c4e6f0c 100644 --- a/packages/e2e-tests/src/features/SettingsPageExtended.part2.feature +++ b/packages/e2e-tests/src/features/SettingsPageExtended.part2.feature @@ -17,7 +17,7 @@ Feature: General Settings - Extended Browser View And I click on "FAQs" setting Then FAQ page is displayed - @LW-3058 @Mainnet @Testnet + @LW-3058 @LW-12253 @Mainnet @Testnet Scenario Outline: Extended view - Settings - option displayed When I open settings from header menu Then I see option with proper description and toggle @@ -209,6 +209,18 @@ Feature: General Settings - Extended Browser View When I close "Custom submit API" drawer Then "Custom submit API" is marked as disabled on Settings page + @LW-12255 @Mainnet @Testnet + Scenario Outline: Extended view - Settings - Debugging option enables verbose logging in console + Given I enable console logs collection + When I open settings from header menu + And Debugging toggle is enabled: + And I navigate to NFTs extended page + Then I verify that logs are collected: + Examples: + | debugging_enabled | logs_collected | + | false | false | + | true | true | + # this test should be executed as the last one in this suite @LW-2521 @LW-9113 @Mainnet @Testnet Scenario: Extended View - Remove wallet and confirm diff --git a/packages/e2e-tests/src/features/SettingsPagePopup.part2.feature b/packages/e2e-tests/src/features/SettingsPagePopup.part2.feature index 7b53c6ce43..3db5744852 100644 --- a/packages/e2e-tests/src/features/SettingsPagePopup.part2.feature +++ b/packages/e2e-tests/src/features/SettingsPagePopup.part2.feature @@ -104,7 +104,7 @@ Feature: General Settings - Popup View Then Side drawer "Show 24-word passphrase" is displayed And Password field is empty - @LW-3061 @Mainnet @Testnet + @LW-3061 @LW-12252 @Mainnet @Testnet Scenario Outline: Popup view - Settings - option displayed When I open settings from header menu Then I see option with proper description and toggle @@ -151,6 +151,18 @@ Feature: General Settings - Popup View When I close "Custom submit API" drawer Then "Custom submit API" is marked as disabled on Settings page + @LW-12254 @Mainnet @Testnet + Scenario Outline: Popup view - Settings - Debugging option enables verbose logging in console + Given I enable console logs collection + When I open settings from header menu + And Debugging toggle is enabled: + And I navigate to NFTs popup page + Then I verify that logs are collected: + Examples: + | debugging_enabled | logs_collected | + | false | false | + | true | true | + # this test should be executed as the last one in this suite @LW-2708 @Mainnet @Testnet Scenario: Popup View - Remove wallet and confirm diff --git a/packages/e2e-tests/src/pageobject/settingsExtendedPageObject.ts b/packages/e2e-tests/src/pageobject/settingsExtendedPageObject.ts index eedf80c083..59385b1bbd 100644 --- a/packages/e2e-tests/src/pageobject/settingsExtendedPageObject.ts +++ b/packages/e2e-tests/src/pageobject/settingsExtendedPageObject.ts @@ -11,6 +11,8 @@ import { expect } from 'chai'; import MainLoader from '../elements/MainLoader'; import MenuHeader from '../elements/menuHeader'; +const toggleEnabledAttribute = 'aria-checked'; + class SettingsExtendedPageObject { clickOnAbout = async () => { await SettingsPage.aboutLink.element.click(); @@ -76,10 +78,15 @@ class SettingsExtendedPageObject { }; toggleAnalytics = async (isEnabled: 'true' | 'false') => { - (await SettingsPage.analyticsSwitch.getAttribute('aria-checked')) !== isEnabled && + (await SettingsPage.analyticsSwitch.getAttribute(toggleEnabledAttribute)) !== isEnabled && (await SettingsPage.analyticsSwitch.click()); }; + toggleDebugging = async (isEnabled: 'true' | 'false') => { + (await SettingsPage.debuggingSwitch.getAttribute(toggleEnabledAttribute)) !== isEnabled && + (await SettingsPage.debuggingSwitch.click()); + }; + // eslint-disable-next-line complexity clickSettingsItem = async (elementName: string): Promise => { await browser.pause(500); diff --git a/packages/e2e-tests/src/steps/commonSteps.ts b/packages/e2e-tests/src/steps/commonSteps.ts index 9cbb994e5a..65e81bd79b 100755 --- a/packages/e2e-tests/src/steps/commonSteps.ts +++ b/packages/e2e-tests/src/steps/commonSteps.ts @@ -378,6 +378,10 @@ Then(/^I verify there are no errors in console logs$/, async () => { await consoleAssert.assertNoErrorsInConsole(); }); +Then(/^I verify that logs are collected: (true|false)$/, async (logsCollected: 'true' | 'false') => { + await consoleAssert.assertLogsAreCollected(logsCollected === 'true'); +}); + Then(/^I wait (\d*) milliseconds$/, async (delay: 1000) => { await browser.pause(delay); }); diff --git a/packages/e2e-tests/src/steps/settingsSteps.ts b/packages/e2e-tests/src/steps/settingsSteps.ts index 5f1cd0446a..9fa237c3a0 100644 --- a/packages/e2e-tests/src/steps/settingsSteps.ts +++ b/packages/e2e-tests/src/steps/settingsSteps.ts @@ -201,9 +201,14 @@ Then( } ); -When(/Analytics toggle is enabled: (true|false)/, async (isEnabled: 'true' | 'false') => { - await settingsExtendedPageObject.toggleAnalytics(isEnabled); -}); +When( + /^(Analytics|Debugging) toggle is enabled: (true|false)$/, + async (option: 'Analytics' | 'Debugging', isEnabled: 'true' | 'false') => { + option === 'Analytics' + ? await settingsExtendedPageObject.toggleAnalytics(isEnabled) + : await settingsExtendedPageObject.toggleDebugging(isEnabled); + } +); Then(/^Side drawer "Show 24-word passphrase" is displayed$/, async () => { await passphraseDrawerAssert.assertSeeDrawerTitle(