Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: lw-12256 add tests for debugging switch #1730

Merged
merged 3 commits into from
Feb 21, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions packages/e2e-tests/src/assert/consoleAssert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
16 changes: 10 additions & 6 deletions packages/e2e-tests/src/assert/settings/SettingsPageAssert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,11 @@ class SettingsPageAssert {
expect(await SettingsPage.showRecoveryPhraseLink.getTitleText()).to.equal(
await t('browserView.settings.security.showPassphrase.title')
);
expect(await SettingsPage.generatePaperWallet.getTitleText()).to.equal(
await t('browserView.settings.generatePaperWallet.title')
);
if (!popupView) {
expect(await SettingsPage.generatePaperWallet.getTitleText()).to.equal(
await t('browserView.settings.generatePaperWallet.title')
);
}
// TODO: temporarily disabled due to LW-2907
// expect(await SettingsPage.passphraseVerificationLink.getTitleText()).to.equal(
// await t('browserView.settings.security.passphrasePeriodicVerification.title')
Expand Down Expand Up @@ -101,9 +103,11 @@ class SettingsPageAssert {
expect(await SettingsPage.showRecoveryPhraseLink.getDescriptionText()).to.equal(
await t('browserView.settings.security.showPassphrase.description')
);
expect(await SettingsPage.generatePaperWallet.getDescriptionText()).to.equal(
await t('browserView.settings.generatePaperWallet.description')
);
if (!popupView) {
expect(await SettingsPage.generatePaperWallet.getDescriptionText()).to.equal(
await t('browserView.settings.generatePaperWallet.description')
);
}
// TODO: temporarily disabled due to LW-2907
// expect(await SettingsPage.passphraseVerificationLink.getDescriptionText()).to.equal(
// await t('browserView.settings.security.passphrasePeriodicVerification.description')
Expand Down
2 changes: 1 addition & 1 deletion packages/e2e-tests/src/features/ForgotPassword.feature
Original file line number Diff line number Diff line change
Expand Up @@ -121,4 +121,4 @@ Feature: Forgot password
Then header menu displays "TestAutomationWallet" as a wallet name
When I close header menu
And I navigate to Settings extended page
Then Analytics toggle is enabled: false
Then Analytics toggle is not enabled
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Feature: Onboarding - Create wallet
And I see LW homepage
And "N_8J@bne87A" password is not in snapshot
And I open settings from header menu
Then Analytics toggle is enabled: true
Then Analytics toggle is enabled
When I open settings from header menu
And I click on Remove wallet button
And I click "Remove wallet" button on "Remove wallet" modal
Expand All @@ -57,7 +57,7 @@ Feature: Onboarding - Create wallet
When I click "Enter wallet" button
And I see LW homepage
And I open settings from header menu
Then Analytics toggle is enabled: false
Then Analytics toggle is not enabled

@LW-2627
Scenario: Create Wallet - autofill words
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ Feature: Onboarding - Restore wallet
Then I see LW homepage
When I confirm multi-address discovery modal
And I open settings from header menu
Then Analytics toggle is enabled: true
Then Analytics toggle is enabled
When I open settings from header menu
And I click on Remove wallet button
And I click "Remove wallet" button on "Remove wallet" modal
Expand All @@ -79,7 +79,7 @@ Feature: Onboarding - Restore wallet
Then I see LW homepage
When I confirm multi-address discovery modal
And I open settings from header menu
Then Analytics toggle is enabled: false
Then Analytics toggle is not enabled

@LW-2628
Scenario: Restore Wallet - autofill words
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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_name> option displayed
When I open settings from header menu
Then I see <option_name> option with proper description and toggle
Expand Down Expand Up @@ -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 <debugging_enabled> enabled
And I navigate to NFTs extended page
Then I verify that logs <logs_collected> collected
Examples:
| debugging_enabled | logs_collected |
| is not | are not |
| is | are |

# 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
Expand Down
14 changes: 13 additions & 1 deletion packages/e2e-tests/src/features/SettingsPagePopup.part2.feature
Original file line number Diff line number Diff line change
Expand Up @@ -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_name> option displayed
When I open settings from header menu
Then I see <option_name> option with proper description and toggle
Expand Down Expand Up @@ -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 <debugging_enabled> enabled
And I navigate to NFTs popup page
Then I verify that logs <logs_collected> collected
Examples:
| debugging_enabled | logs_collected |
| is not | are not |
| is | are |

# this test should be executed as the last one in this suite
@LW-2708 @Mainnet @Testnet
Scenario: Popup View - Remove wallet and confirm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,11 @@ Feature: Analytics - Settings - Extended View
Scenario: Analytics - Extended View - Settings - Analytics
When I open settings from header menu
And I set up request interception for posthog analytics request(s)
And Analytics toggle is enabled: true
And Analytics toggle is enabled: false
And Analytics toggle is enabled
And Analytics toggle is not enabled
Then I validate latest analytics single event "settings | analytics | skip | click"
Then I validate that 1 analytics event(s) have been sent
And Analytics toggle is enabled: true
And Analytics toggle is enabled

@LW-8790
Scenario: Analytics - Extended View - Settings - Theme switch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,11 +163,11 @@ Feature: Analytics - Settings - Popup View
Given I am on Tokens popup page
When I open settings from header menu
And I set up request interception for posthog analytics request(s)
And Analytics toggle is enabled: true
And Analytics toggle is enabled: false
And Analytics toggle is enabled
And Analytics toggle is not enabled
Then I validate latest analytics single event "settings | analytics | skip | click"
Then I validate that 1 analytics event(s) have been sent
And Analytics toggle is enabled: true
And Analytics toggle is enabled

@LW-8786
Scenario: Analytics - Popup View - Settings - Theme switch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ Feature: Analytics - Settings Toggle - Extended View
@LW-8312
Scenario Outline: Analytics - Extended view - Settings - Analytics option enabled: <is_enabled> and Posthog events sent
When I open settings from header menu
And Analytics toggle is enabled: <toggle_enabled>
And Analytics toggle <toggle_enabled> enabled
Given I set up request interception for posthog analytics request(s)
And I am on NFTs extended page
And I validate that <number_of_events> analytics event(s) have been sent
Examples:
| toggle_enabled | number_of_events |
| true | 1 |
| false | 0 |
| is | 1 |
| is not | 0 |
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ Feature: Analytics - Settings Toggle - Popup View
@LW-8314
Scenario Outline: Analytics - Popup view - Settings - Analytics option enabled: <is_enabled> and Posthog events sent
When I open settings from header menu
And Analytics toggle is enabled: <toggle_enabled>
And Analytics toggle <toggle_enabled> enabled
Given I set up request interception for posthog analytics request(s)
And I am on NFTs popup page
And I validate that <number_of_events> analytics event(s) have been sent
Examples:
| toggle_enabled | number_of_events |
| true | 1 |
| false | 0 |
| is | 1 |
| is not | 0 |
11 changes: 9 additions & 2 deletions packages/e2e-tests/src/pageobject/settingsExtendedPageObject.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down Expand Up @@ -75,11 +77,16 @@ class SettingsExtendedPageObject {
}
};

toggleAnalytics = async (isEnabled: 'true' | 'false') => {
(await SettingsPage.analyticsSwitch.getAttribute('aria-checked')) !== isEnabled &&
toggleAnalytics = async (isEnabled: boolean) => {
(await SettingsPage.analyticsSwitch.getAttribute(toggleEnabledAttribute)) !== String(isEnabled) &&
(await SettingsPage.analyticsSwitch.click());
};

toggleDebugging = async (isEnabled: boolean) => {
(await SettingsPage.debuggingSwitch.getAttribute(toggleEnabledAttribute)) !== String(isEnabled) &&
(await SettingsPage.debuggingSwitch.click());
};

// eslint-disable-next-line complexity
clickSettingsItem = async (elementName: string): Promise<void> => {
await browser.pause(500);
Expand Down
4 changes: 4 additions & 0 deletions packages/e2e-tests/src/steps/commonSteps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -378,6 +378,10 @@ Then(/^I verify there are no errors in console logs$/, async () => {
await consoleAssert.assertNoErrorsInConsole();
});

Then(/^I verify that logs (are|are not) collected$/, async (logsCollected: 'are' | 'are not') => {
await consoleAssert.assertLogsAreCollected(logsCollected === 'are');
});

Then(/^I wait (\d*) milliseconds$/, async (delay: 1000) => {
await browser.pause(delay);
});
Expand Down
11 changes: 8 additions & 3 deletions packages/e2e-tests/src/steps/settingsSteps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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|is not) enabled$/,
async (option: 'Analytics' | 'Debugging', isEnabled: 'is' | 'is not') => {
option === 'Analytics'
? await settingsExtendedPageObject.toggleAnalytics(isEnabled === 'is')
: await settingsExtendedPageObject.toggleDebugging(isEnabled === 'is');
}
);

Then(/^Side drawer "Show 24-word passphrase" is displayed$/, async () => {
await passphraseDrawerAssert.assertSeeDrawerTitle(
Expand Down
Loading