From 48a74ad094d82e7422b1419b12d408432386b361 Mon Sep 17 00:00:00 2001 From: bslabiak <112852128+bslabiak@users.noreply.github.com> Date: Thu, 19 Sep 2024 16:14:28 +0200 Subject: [PATCH 1/3] test(extension): fix flaky help and support test (#1440) --- .../src/assert/helpAndSupportPageAssert.ts | 5 +---- .../e2e-tests/src/elements/helpAndSupportPage.ts | 14 -------------- .../src/features/LockWalletExtended.feature | 2 +- .../features/OnboardingCreateWallet.part1.feature | 2 +- packages/e2e-tests/src/steps/commonSteps.ts | 4 ++-- 5 files changed, 5 insertions(+), 22 deletions(-) delete mode 100644 packages/e2e-tests/src/elements/helpAndSupportPage.ts diff --git a/packages/e2e-tests/src/assert/helpAndSupportPageAssert.ts b/packages/e2e-tests/src/assert/helpAndSupportPageAssert.ts index dec665cb9..8b8a304dd 100644 --- a/packages/e2e-tests/src/assert/helpAndSupportPageAssert.ts +++ b/packages/e2e-tests/src/assert/helpAndSupportPageAssert.ts @@ -1,16 +1,13 @@ import { browser } from '@wdio/globals'; import { expect } from 'chai'; -import HelpAndSupportPage from '../elements/helpAndSupportPage'; class HelpAndSupportPageAssert { - assertSeeHelpAndSupportPage = async () => { + assertSeeHelpAndSupportPageURL = async () => { // might need to be updated in the future await browser.switchWindow('iohk.zendesk.com'); const currentUrl = await browser.getUrl(); const expectedUrl = 'https://iohk.zendesk.com/hc/en-us/requests/new'; expect(currentUrl).to.equal(expectedUrl); - await HelpAndSupportPage.breadcrumbPart1.waitForDisplayed(); - await HelpAndSupportPage.breadcrumbPart2.waitForDisplayed(); }; } diff --git a/packages/e2e-tests/src/elements/helpAndSupportPage.ts b/packages/e2e-tests/src/elements/helpAndSupportPage.ts deleted file mode 100644 index 1b66c978e..000000000 --- a/packages/e2e-tests/src/elements/helpAndSupportPage.ts +++ /dev/null @@ -1,14 +0,0 @@ -class HelpAndSupportPage { - private BREADCRUMB_PART_1 = 'li[title="IOHK Support"]'; - private BREADCRUMB_PART_2 = 'li[title="Submit a request"]'; - - get breadcrumbPart1() { - return $(this.BREADCRUMB_PART_1); - } - - get breadcrumbPart2() { - return $(this.BREADCRUMB_PART_2); - } -} - -export default new HelpAndSupportPage(); diff --git a/packages/e2e-tests/src/features/LockWalletExtended.feature b/packages/e2e-tests/src/features/LockWalletExtended.feature index 5fd754b71..d3f1ad5b3 100644 --- a/packages/e2e-tests/src/features/LockWalletExtended.feature +++ b/packages/e2e-tests/src/features/LockWalletExtended.feature @@ -19,7 +19,7 @@ Feature: Wallet locking / unlocking - Extended view Scenario: Extended view - "Help and support" button click Given I am on lock screen When I click "Help and support" button on unlock screen - Then I see "Help and support" page + Then I see "Help and support" page URL @LW-3036 @Smoke Scenario: Extended view - Unlocking wallet with correct password opens wallet diff --git a/packages/e2e-tests/src/features/OnboardingCreateWallet.part1.feature b/packages/e2e-tests/src/features/OnboardingCreateWallet.part1.feature index be7a4ea4d..d492882ad 100755 --- a/packages/e2e-tests/src/features/OnboardingCreateWallet.part1.feature +++ b/packages/e2e-tests/src/features/OnboardingCreateWallet.part1.feature @@ -71,7 +71,7 @@ Feature: Onboarding - Create wallet And I click "Next" button during wallet setup And "Mnemonic writedown" page is displayed with 24 words When I click "Help and support" button during wallet setup - Then I see "Help and support" page + Then I see "Help and support" page URL @LW-2435 Scenario: Create Wallet - Mnemonic writedown page - next button diff --git a/packages/e2e-tests/src/steps/commonSteps.ts b/packages/e2e-tests/src/steps/commonSteps.ts index b850c4525..2e3526e8d 100755 --- a/packages/e2e-tests/src/steps/commonSteps.ts +++ b/packages/e2e-tests/src/steps/commonSteps.ts @@ -167,8 +167,8 @@ Then(/^I don't see any toast message$/, async () => { await ToastMessageAssert.assertSeeToastMessage('', false); }); -Then(/^I see "Help and support" page$/, async () => { - await helpAndSupportPageAssert.assertSeeHelpAndSupportPage(); +Then(/^I see "Help and support" page URL$/, async () => { + await helpAndSupportPageAssert.assertSeeHelpAndSupportPageURL(); }); Then(/New tab with url containing "([^"]*)" is opened/, async (urlPart: string) => { From a59aaa21585b1b1838939f6eb9a693ea7b5319c8 Mon Sep 17 00:00:00 2001 From: Angel Castillo Date: Mon, 23 Sep 2024 17:43:17 +0800 Subject: [PATCH 2/3] chore: bump posthog version to latest (#1439) --- apps/browser-extension-wallet/package.json | 2 +- .../PostHogClientProvider/client/PostHogClient.ts | 3 ++- packages/e2e-tests/src/steps/analyticsSteps.ts | 2 +- .../e2e-tests/src/utils/postHogAnalyticsUtils.ts | 15 +++++++++++++-- yarn.lock | 4 ++-- 5 files changed, 19 insertions(+), 7 deletions(-) diff --git a/apps/browser-extension-wallet/package.json b/apps/browser-extension-wallet/package.json index b30f5227d..23f9008bb 100644 --- a/apps/browser-extension-wallet/package.json +++ b/apps/browser-extension-wallet/package.json @@ -79,7 +79,7 @@ "openpgp": "^5.11.2", "p-debounce": "^4.0.0", "pluralize": "^8.0.0", - "posthog-js": "^1.68.4", + "posthog-js": "^1.161.3", "process": "^0.11.10", "qrcode": "^1.5.3", "react": "17.0.2", diff --git a/apps/browser-extension-wallet/src/providers/PostHogClientProvider/client/PostHogClient.ts b/apps/browser-extension-wallet/src/providers/PostHogClientProvider/client/PostHogClient.ts index d49aa3a91..11c798135 100644 --- a/apps/browser-extension-wallet/src/providers/PostHogClientProvider/client/PostHogClient.ts +++ b/apps/browser-extension-wallet/src/providers/PostHogClientProvider/client/PostHogClient.ts @@ -58,10 +58,11 @@ export class PostHogClient { request_batching: false, api_host: this.postHogHost, autocapture: false, + opt_out_useragent_filter: true, + disable_compression: true, disable_session_recording: true, capture_pageview: false, capture_pageleave: false, - disable_compression: true, // Disables PostHog user ID persistence - we manage ID ourselves with userIdService disable_persistence: true, disable_cookie: true, diff --git a/packages/e2e-tests/src/steps/analyticsSteps.ts b/packages/e2e-tests/src/steps/analyticsSteps.ts index 7630550f5..508098285 100644 --- a/packages/e2e-tests/src/steps/analyticsSteps.ts +++ b/packages/e2e-tests/src/steps/analyticsSteps.ts @@ -26,7 +26,7 @@ export const validateEventProperty = async (event: string, property: string, pro When(/^I set up request interception for posthog analytics request\(s\)$/, async () => { await browser.pause(1000); await browser.setupInterceptor(); - await browser.excludeUrls([new RegExp('^(?!https://e.lw.iog.io/e).*')]); + await browser.excludeUrls([new RegExp('^(?!https://e.lw.iog.io).*')]); }); When(/^I validate latest analytics multiple events:$/, async (eventActionNames: DataTable) => { diff --git a/packages/e2e-tests/src/utils/postHogAnalyticsUtils.ts b/packages/e2e-tests/src/utils/postHogAnalyticsUtils.ts index 8ca5e13a3..60d26012a 100644 --- a/packages/e2e-tests/src/utils/postHogAnalyticsUtils.ts +++ b/packages/e2e-tests/src/utils/postHogAnalyticsUtils.ts @@ -1,8 +1,19 @@ import { browser } from '@wdio/globals'; const getRequestDataPayload = async (request: any): Promise => { - const requestPayloadBase64Data = decodeURIComponent(String(request.body)).replace('data=', ''); - return JSON.parse(Buffer.from(requestPayloadBase64Data, 'base64').toString('ascii')); + if (!request.body) { + console.warn('Request body is undefined'); + return {}; + } + + const requestBody = typeof request.body === 'string' ? request.body : JSON.stringify(request.body); + + try { + return JSON.parse(requestBody); + } catch { + const requestPayloadBase64Data = decodeURIComponent(requestBody).replace('data=', ''); + return JSON.parse(Buffer.from(requestPayloadBase64Data, 'base64').toString('ascii')); + } }; export const getAllEventsNames = async (): Promise => { diff --git a/yarn.lock b/yarn.lock index 942d9ee1d..ad190fc2f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11356,7 +11356,7 @@ __metadata: openpgp: ^5.11.2 p-debounce: ^4.0.0 pluralize: ^8.0.0 - posthog-js: ^1.68.4 + posthog-js: ^1.161.3 process: ^0.11.10 qrcode: ^1.5.3 react: 17.0.2 @@ -44940,7 +44940,7 @@ __metadata: languageName: node linkType: hard -"posthog-js@npm:^1.68.4": +"posthog-js@npm:^1.161.3": version: 1.161.6 resolution: "posthog-js@npm:1.161.6" dependencies: From d38eff37968fa8a7a47b369a0877365de09f4f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojtek=20K=C5=82os?= <114915819+wklos-iohk@users.noreply.github.com> Date: Tue, 24 Sep 2024 08:57:54 +0200 Subject: [PATCH 3/3] test(extension): add tests for Sign Message feature (#1441) --- .../sign-message/SignMessageDrawer.tsx | 26 ++++-- .../sign-message/useDrawerConfiguration.tsx | 9 +- .../WalletOwnAddressDropdown.tsx | 7 +- .../MessageSigningAllDoneDrawerAssert.ts | 39 +++++++++ .../MessageSigningConfirmationDrawerAssert.ts | 36 ++++++++ .../MessageSigningInputDrawerAssert.ts | 61 ++++++++++++++ packages/e2e-tests/src/elements/menuHeader.ts | 10 +++ .../settings/MessageSigningAllDoneDrawer.ts | 48 +++++++++++ .../MessageSigningConfirmationDrawer.ts | 23 +++++ .../settings/MessageSigningInputDrawer.ts | 84 +++++++++++++++++++ .../SettingsGeneratePaperWallet.feature | 2 +- .../src/features/SignMessage.feature | 60 +++++++++++++ .../e2e-tests/src/hooks/beforeTagHooks.ts | 2 +- packages/e2e-tests/src/steps/AccountsSteps.ts | 15 ++++ .../src/steps/MessageSigningSteps.ts | 57 +++++++++++++ .../e2e-tests/src/steps/navigationTopSteps.ts | 4 + packages/e2e-tests/wdio.conf.base.ts | 2 +- 17 files changed, 472 insertions(+), 13 deletions(-) create mode 100644 packages/e2e-tests/src/assert/settings/MessageSigningAllDoneDrawerAssert.ts create mode 100644 packages/e2e-tests/src/assert/settings/MessageSigningConfirmationDrawerAssert.ts create mode 100644 packages/e2e-tests/src/assert/settings/MessageSigningInputDrawerAssert.ts create mode 100644 packages/e2e-tests/src/elements/settings/MessageSigningAllDoneDrawer.ts create mode 100644 packages/e2e-tests/src/elements/settings/MessageSigningConfirmationDrawer.ts create mode 100644 packages/e2e-tests/src/elements/settings/MessageSigningInputDrawer.ts create mode 100644 packages/e2e-tests/src/features/SignMessage.feature create mode 100644 packages/e2e-tests/src/steps/MessageSigningSteps.ts diff --git a/apps/browser-extension-wallet/src/views/browser-view/features/sign-message/SignMessageDrawer.tsx b/apps/browser-extension-wallet/src/views/browser-view/features/sign-message/SignMessageDrawer.tsx index f4d9c3e46..2e59f32d5 100644 --- a/apps/browser-extension-wallet/src/views/browser-view/features/sign-message/SignMessageDrawer.tsx +++ b/apps/browser-extension-wallet/src/views/browser-view/features/sign-message/SignMessageDrawer.tsx @@ -67,15 +67,21 @@ export const SignMessageDrawer: React.FC = () => { const renderInitialState = () => ( <> - {t('core.signMessage.instructions')} - {t('core.signMessage.subtitle')} + + {t('core.signMessage.instructions')} + + + {t('core.signMessage.subtitle')} + {isHardwareWallet && hardwareWalletError && (
{hardwareWalletError}
)}
- {t('core.signMessage.addressLabel')} + + {t('core.signMessage.addressLabel')} + { />
- {t('core.signMessage.messageLabel')} + + {t('core.signMessage.messageLabel')} +