diff --git a/packages/suite-desktop-core/e2e/support/pageActions/analyticsActions.ts b/packages/suite-desktop-core/e2e/support/pageActions/analyticsActions.ts index dedbb1b55c3..4c519ec9876 100644 --- a/packages/suite-desktop-core/e2e/support/pageActions/analyticsActions.ts +++ b/packages/suite-desktop-core/e2e/support/pageActions/analyticsActions.ts @@ -5,10 +5,12 @@ import { step } from '../common'; export class AnalyticsActions { readonly heading: Locator; readonly continueButton: Locator; + readonly toggleSwitch: Locator; constructor(page: Page) { this.continueButton = page.getByTestId('@analytics/continue-button'); this.heading = page.getByTestId('@analytics/consent/heading'); + this.toggleSwitch = page.getByTestId('@analytics/toggle-switch'); } @step() diff --git a/packages/suite-desktop-core/e2e/support/pageActions/settings/settingsActions.ts b/packages/suite-desktop-core/e2e/support/pageActions/settings/settingsActions.ts index b551fdb0bef..dede25fbd70 100644 --- a/packages/suite-desktop-core/e2e/support/pageActions/settings/settingsActions.ts +++ b/packages/suite-desktop-core/e2e/support/pageActions/settings/settingsActions.ts @@ -66,6 +66,7 @@ export class SettingsActions { readonly checkSeedButton: Locator; readonly metadataSwitch: Locator; readonly analyticsSwitch: Locator; + readonly showLogButton: Locator; constructor( private readonly page: Page, @@ -100,6 +101,7 @@ export class SettingsActions { this.checkSeedButton = this.page.getByTestId('@settings/device/check-seed-button'); this.metadataSwitch = this.page.getByTestId('@settings/metadata-switch'); this.analyticsSwitch = this.page.getByTestId('@analytics/toggle-switch'); + this.showLogButton = this.page.getByTestId('@settings/show-log-button'); } @step() @@ -200,4 +202,14 @@ export class SettingsActions { await expect(this.notificationSuccessToast).toBeVisible(); }); } + + @step() + async changeSafetyChecksLevel(level: 'strict' | 'prompt') { + await this.navigateTo('device'); + await this.page.getByTestId('@settings/device/safety-checks-button').click(); + await this.page.getByTestId(`@radio-button-${level}`).click(); + await this.page.getByTestId('@safety-checks-apply').click(); + await expect(this.confirmOnDevicePrompt).toBeVisible(); + await TrezorUserEnvLinkProxy.pressYes(); + } } diff --git a/packages/suite-desktop-core/e2e/support/pageActions/suiteGuideActions.ts b/packages/suite-desktop-core/e2e/support/pageActions/suiteGuideActions.ts index 5b81b7ba097..0bb28f9f51a 100644 --- a/packages/suite-desktop-core/e2e/support/pageActions/suiteGuideActions.ts +++ b/packages/suite-desktop-core/e2e/support/pageActions/suiteGuideActions.ts @@ -27,6 +27,9 @@ export class SuiteGuide { readonly toastNotifications: Locator; readonly feedbackSuccessToast: Locator; readonly articleHeader: Locator; + readonly guideNodes: Locator; + readonly guideLabel: Locator; + readonly searchNoResults: Locator; constructor(private readonly page: Page) { this.guideButton = this.page.getByTestId('@guide/button-open'); @@ -46,6 +49,9 @@ export class SuiteGuide { this.toastNotifications = this.page.locator('[data-testid-alt="@toast"]'); this.feedbackSuccessToast = this.page.getByTestId('@toast/user-feedback-send-success'); this.articleHeader = this.page.getByTestId('@guide/article').locator('h1'); + this.guideNodes = this.page.getByTestId('@guide/nodes'); + this.guideLabel = this.page.getByTestId('@guide/label'); + this.searchNoResults = this.page.getByTestId('@guide/search/no-results'); } @step() diff --git a/packages/suite-desktop-core/e2e/tests/suite/bridge.test.ts b/packages/suite-desktop-core/e2e/tests/suite/bridge.test.ts new file mode 100644 index 00000000000..18e2b37a7d0 --- /dev/null +++ b/packages/suite-desktop-core/e2e/tests/suite/bridge.test.ts @@ -0,0 +1,19 @@ +import { expect, test } from '../../support/fixtures'; + +test.describe('Bridge page', { tag: ['@group=suite', '@webOnly'] }, () => { + test.beforeEach(async ({ trezorUserEnvLink }) => { + await trezorUserEnvLink.stopEmu(); + await trezorUserEnvLink.stopBridge(); + }); + + test.use({ startEmulator: false }); + test('can use webusb', async ({ url, page }) => { + await page.goto(url + 'bridge'); + + // user may exit bridge page and use webusb + await page.getByTestId('@bridge/goto/wallet-index').click(); + + // connect device prompt with webusb enabled appears + await expect(page.getByTestId('@connect-device-prompt')).toBeVisible(); + }); +}); diff --git a/packages/suite-desktop-core/e2e/tests/suite/bug-report-form.test.ts b/packages/suite-desktop-core/e2e/tests/suite/bug-report-form.test.ts new file mode 100644 index 00000000000..520e74dfecc --- /dev/null +++ b/packages/suite-desktop-core/e2e/tests/suite/bug-report-form.test.ts @@ -0,0 +1,20 @@ +import { FeedbackCategory } from '@suite-common/suite-types'; + +import { expect, test } from '../../support/fixtures'; + +test.describe('Bug report forms', { tag: ['@group=suite'] }, () => { + test.use({ emulatorSetupConf: { mnemonic: 'mnemonic_all' } }); + test('Send a bug report', async ({ page, suiteGuidePage }) => { + const testData = { + location: 'account' as FeedbackCategory, + report: 'Henlo this is testy test writing hangry test user report', + }; + + await suiteGuidePage.openPanel(); + await suiteGuidePage.supportAndFeedbackButton.click(); + + await suiteGuidePage.sendBugReport(testData); + + await expect(page.getByTestId('@toast/user-feedback-send-success')).toBeVisible(); + }); +}); diff --git a/packages/suite-desktop-core/e2e/tests/suite/guide.test.ts b/packages/suite-desktop-core/e2e/tests/suite/guide.test.ts new file mode 100644 index 00000000000..edafb430bc7 --- /dev/null +++ b/packages/suite-desktop-core/e2e/tests/suite/guide.test.ts @@ -0,0 +1,63 @@ +import { expect, test } from '../../support/fixtures'; + +test.describe('Guide without device', { tag: ['@group=suite', '@webOnly'] }, () => { + test.beforeEach(async ({ trezorUserEnvLink }) => { + await trezorUserEnvLink.stopEmu(); + await trezorUserEnvLink.stopBridge(); + }); + test.use({ startEmulator: false }); + test('open / close guide', async ({ page, suiteGuidePage, settingsPage }) => { + // Open guide + await suiteGuidePage.openPanel(); + const firstNode = suiteGuidePage.guideNodes.first().locator('> *').first(); + const text = await firstNode.innerText(); + await firstNode.click(); + await expect(suiteGuidePage.guideLabel).toHaveText(text); + await firstNode.click(); + await suiteGuidePage.closeGuide(); + await expect(suiteGuidePage.guideButton).toBeVisible(); + + // Feedback form + await suiteGuidePage.openPanel(); + await suiteGuidePage.supportAndFeedbackButton.click(); + await suiteGuidePage.feedbackFormButton.click(); + await page.getByTestId('@guide/feedback/suggestion/5').click(); + await suiteGuidePage.bugInputTextField.fill('Hello!'); + await suiteGuidePage.submitButton.click(); + await expect(suiteGuidePage.feedbackSuccessToast).toBeVisible(); + + // Guide over modal + await settingsPage.navigateTo('application'); + await settingsPage.showLogButton.click(); + await suiteGuidePage.closeGuide(); + await suiteGuidePage.openPanel(); + await expect(suiteGuidePage.guidePanel).toBeVisible(); + + // Search input + await suiteGuidePage.searchInput.fill('trezor'); + await expect + .poll(async () => (await suiteGuidePage.searchResults.all()).length) + .toBeGreaterThan(0); + await suiteGuidePage.searchInput.fill('meow-wuf-nonsense'); + await expect(suiteGuidePage.searchNoResults).toBeVisible(); + }); +}); + +test.describe('Guide with device', { tag: ['@group=suite'] }, () => { + test('onboarding with device', async ({ + page, + analyticsPage, + onboardingPage, + suiteGuidePage, + }) => { + await onboardingPage.disableFirmwareHashCheck(); + await onboardingPage.optionallyDismissFwHashCheckError(); + await analyticsPage.continueButton.click(); + + await suiteGuidePage.openPanel(); + await expect(page.getByTestId('@guide/panel')).toBeVisible(); + await page.getByTestId('@guide/button-feedback').click(); + await expect(suiteGuidePage.bugFormButton).toBeVisible(); + await expect(suiteGuidePage.feedbackFormButton).toBeVisible(); + }); +}); diff --git a/packages/suite-desktop-core/e2e/tests/suite/initial-run.test.ts b/packages/suite-desktop-core/e2e/tests/suite/initial-run.test.ts new file mode 100644 index 00000000000..a617d85cd3c --- /dev/null +++ b/packages/suite-desktop-core/e2e/tests/suite/initial-run.test.ts @@ -0,0 +1,33 @@ +import { expect, test } from '../../support/fixtures'; + +test.describe('Suite initial run', { tag: ['@group=suite'] }, () => { + test.beforeEach(async ({ onboardingPage }) => { + await onboardingPage.disableFirmwareHashCheck(); + }); + + test('Until user passed through initial run, it will be there after reload', async ({ + page, + analyticsPage, + onboardingPage, + }) => { + await expect(analyticsPage.toggleSwitch).toBeVisible(); + await page.reload(); + // analytics screen is there until user confirms his choice + await expect(analyticsPage.toggleSwitch).toBeVisible(); + await analyticsPage.continueButton.click(); + await page.reload(); + await expect(analyticsPage.toggleSwitch).not.toBeVisible(); + await expect(onboardingPage.onboardingContinueButton).toBeVisible(); + }); + + test('Once user passed trough, skips initial run and shows connect-device modal', async ({ + page, + dashboardPage, + onboardingPage, + }) => { + await onboardingPage.completeOnboarding({ enableViewOnly: true }); + await dashboardPage.discoveryShouldFinish(); + await page.reload(); + await expect(dashboardPage.deviceSwitchingOpenButton).toContainText('Connected'); + }); +}); diff --git a/packages/suite-desktop-core/e2e/tests/suite/safety-checks-warning.test.ts b/packages/suite-desktop-core/e2e/tests/suite/safety-checks-warning.test.ts new file mode 100644 index 00000000000..92950080ec7 --- /dev/null +++ b/packages/suite-desktop-core/e2e/tests/suite/safety-checks-warning.test.ts @@ -0,0 +1,50 @@ +import { expect, test } from '../../support/fixtures'; + +test.describe('safety_checks Warnings', { tag: ['@group=suite'] }, () => { + test.beforeEach(async ({ onboardingPage, dashboardPage, settingsPage }) => { + await onboardingPage.completeOnboarding(); + await dashboardPage.discoveryShouldFinish(); + await settingsPage.changeSafetyChecksLevel('prompt'); + }); + + test('Dismissible warning appears when safety_checks to prompt', async ({ page }) => { + await expect(page.getByTestId('@banner/safety-checks/button')).toBeVisible(); + await expect(page.getByTestId('@banner/safety-checks/dismiss')).toBeVisible(); + }); + + test('CTA button opens device settings when safety_checks to prompt', async ({ + page, + settingsPage, + }) => { + await page.getByTestId('@banner/safety-checks/button').click(); + await expect(settingsPage.settingsHeader).toBeVisible(); + }); + + test('Dismiss button hides the warning when safety_checks to prompt', async ({ page }) => { + await page.getByTestId('@banner/safety-checks/dismiss').click(); + await expect(page.getByTestId('@banner/safety-checks/button')).not.toBeVisible(); + }); + + test('Warning disappears when safety_checks are set to strict from prompt', async ({ + page, + settingsPage, + }) => { + await settingsPage.changeSafetyChecksLevel('strict'); + + await expect(page.getByTestId('@banner/safety-checks/button')).not.toBeVisible(); + }); + + test('Dismissed warning re-appears when safety_checks are set to strict and then to Prompt again', async ({ + page, + settingsPage, + }) => { + await settingsPage.changeSafetyChecksLevel('strict'); + + await expect(page.getByTestId('@banner/safety-checks/button')).not.toBeVisible(); + // Set safety_checks back to PromptTemporarily + await settingsPage.changeSafetyChecksLevel('prompt'); + + // Assert the warning appears again. + await expect(page.getByTestId('@banner/safety-checks/button')).toBeVisible(); + }); +}); diff --git a/packages/suite-desktop-core/e2e/tests/suite/version-page.test.ts b/packages/suite-desktop-core/e2e/tests/suite/version-page.test.ts new file mode 100644 index 00000000000..0e49dbd7922 --- /dev/null +++ b/packages/suite-desktop-core/e2e/tests/suite/version-page.test.ts @@ -0,0 +1,18 @@ +import { getSuiteVersion } from '@trezor/env-utils'; + +import { expect, test } from '../../support/fixtures'; + +test.describe('Hidden version page', { tag: ['@group=suite', '@webOnly'] }, () => { + test.beforeEach(async ({ trezorUserEnvLink }) => { + await trezorUserEnvLink.stopEmu(); + await trezorUserEnvLink.stopBridge(); + }); + test.use({ startEmulator: false }); + + test('is accessible via route', async ({ url, page }) => { + const suiteVersion = getSuiteVersion(); + await page.goto(url + 'version'); + await expect(page.getByTestId('@version/number')).toContainText(suiteVersion); + await page.getByTestId('@modal/version').screenshot({ path: 'version-modal.png' }); + }); +}); diff --git a/packages/suite-web/e2e/tests/suite/bridge.test.ts b/packages/suite-web/e2e/tests/suite/bridge.test.ts deleted file mode 100644 index b9a225902a5..00000000000 --- a/packages/suite-web/e2e/tests/suite/bridge.test.ts +++ /dev/null @@ -1,22 +0,0 @@ -// @group_suite -// @retry=2 - -describe('Bridge page', () => { - beforeEach(() => { - cy.viewport('macbook-13').resetDb(); - }); - - it('/bridge', () => { - cy.prefixedVisit('/bridge'); - - cy.getTestElement('@modal/bridge').matchImageSnapshot('bridge-modal-new', { - blackout: ['[data-testid="@bridge/download-button"]'], - }); - - // user may exit bridge page and use webusb - cy.getTestElement('@bridge/goto/wallet-index').click(); - - // connect device prompt with webusb enabled appears - cy.getTestElement('@connect-device-prompt'); - }); -}); diff --git a/packages/suite-web/e2e/tests/suite/bug-report-form.test.ts b/packages/suite-web/e2e/tests/suite/bug-report-form.test.ts deleted file mode 100644 index 369f253f66c..00000000000 --- a/packages/suite-web/e2e/tests/suite/bug-report-form.test.ts +++ /dev/null @@ -1,49 +0,0 @@ -// @group_suite -// @retry=2 - -import { onSuiteGuide } from '../../support/pageObjects/suiteGuideObject'; - -describe('Stories of bug report forms', () => { - beforeEach(() => { - cy.task('startEmu', { wipe: true }); - cy.task('setupEmu', { mnemonic: 'mnemonic_all' }); - - cy.task('startBridge'); - cy.viewport('macbook-13').resetDb(); - cy.prefixedVisit('/'); - }); - - afterEach(() => { - cy.task('stopEmu'); - }); - - /** - * Test case: - * 1. Go to Bug section in Suite Guide - * 2. Select Dashboard - * 3. Write into feedback field - * 4. Submit bug report (reporttext) - */ - it(`Send a bug report`, () => { - // - // Test preparation - // - const testData = { - desiredLocation: 'Account', - reportText: 'Henlo this is testy test writing hangry test user report', - }; - - // - // Test execution - // - - onSuiteGuide.openSidePanel(); - onSuiteGuide.openFeedback(); - onSuiteGuide.sendBugreport(testData); - - // - // Assert - // - cy.getTestElement('@toast/user-feedback-send-success').should('be.visible'); - }); -}); diff --git a/packages/suite-web/e2e/tests/suite/guide.test.ts b/packages/suite-web/e2e/tests/suite/guide.test.ts deleted file mode 100644 index 7d8d4808581..00000000000 --- a/packages/suite-web/e2e/tests/suite/guide.test.ts +++ /dev/null @@ -1,70 +0,0 @@ -// @group_suite -// @retry=2 - -import { onNavBar } from '../../support/pageObjects/topBarObject'; - -describe('Test Guide', () => { - beforeEach(() => { - cy.viewport('macbook-13').resetDb(); - cy.prefixedVisit('/'); - cy.task('startBridge'); - }); - - it('Testing guide open / close', () => { - // Open guide - cy.getTestElement('@guide/button-open').click(); - cy.getTestElement('@guide/panel').should('be.visible'); - cy.getTestElement('@guide/nodes') - .first() - .children() - .first() - .then(el => { - const text = el.text(); - el.click(); - cy.log('text', text); - cy.getTestElement('@guide/label').should('have.text', text); - }); - cy.getTestElement('@guide/nodes').first().children().first().click(); - cy.getTestElement('@guide/header-breadcrumb/category-link').click(); - cy.getTestElement('@guide/button-open').should('not.be.visible'); - cy.getTestElement('@guide/button-close').click(); - cy.getTestElement('@guide/panel').should('not.exist'); - cy.getTestElement('@guide/button-open').should('be.visible'); - - // Feedback form - cy.getTestElement('@guide/button-open').click(); - cy.getTestElement('@guide/button-feedback').click(); - cy.getTestElement('@guide/feedback/suggestion').click(); - cy.getTestElement('@guide/feedback/suggestion/5').click(); - cy.getTestElement('@guide/feedback/suggestion-form').type('Hello!'); - cy.getTestElement('@guide/feedback/submit-button').click(); - cy.getTestElement('@toast/user-feedback-send-success').should('be.visible'); - - // Guide over modal - onNavBar.openSettings(); - cy.getTestElement('@settings/show-log-button').click(); - cy.getTestElement('@guide/button-close').click(); - cy.getTestElement('@guide/button-open').click(); - cy.getTestElement('@guide/panel').should('be.visible'); - - // Search input - cy.getTestElement('@guide/search').type('trezor'); - cy.getTestElement('@guide/search/results').children().should('have.length.above', 0); - cy.getTestElement('@guide/search').type('meow-wuf-nonsense'); - cy.getTestElement('@guide/search/no-results'); - }); - - it('In onboarding with device', () => { - cy.task('startEmu', { wipe: true }); - cy.disableFirmwareHashCheck(); - cy.getTestElement('@analytics/continue-button').click(); - cy.getTestElement('@analytics/continue-button').click(); - cy.getTestElement('@guide/button-open').click(); - cy.getTestElement('@guide/panel').should('be.visible'); - cy.getTestElement('@guide/button-feedback').click(); - // cypress open todo: panel is probably animated, we need to wait until it is fully expanded - cy.getTestElement('@guide/panel').screenshot('guide-side-panel', { - blackout: ['[data-testid="@guide/support/version"]'], - }); - }); -}); diff --git a/packages/suite-web/e2e/tests/suite/initial-run.test.ts b/packages/suite-web/e2e/tests/suite/initial-run.test.ts deleted file mode 100644 index f553fb0ae82..00000000000 --- a/packages/suite-web/e2e/tests/suite/initial-run.test.ts +++ /dev/null @@ -1,38 +0,0 @@ -// @group_suite -// @retry=2 - -describe('Suite initial run', () => { - beforeEach(() => { - cy.viewport('macbook-13').resetDb(); - cy.task('startEmu', { wipe: true }); - cy.task('setupEmu'); - cy.task('startBridge'); - }); - - it('Until user passed through initial run, it will be there after reload', () => { - cy.prefixedVisit('/'); - cy.disableFirmwareHashCheck(); - cy.getTestElement('@analytics/toggle-switch').should('be.visible'); - cy.safeReload(); - // analytics screen is there until user confirms his choice - cy.getTestElement('@analytics/toggle-switch').should('be.visible'); - cy.getTestElement('@analytics/continue-button').click(); - cy.safeReload(); - cy.getTestElement('@analytics/toggle-switch').should('not.exist'); - cy.getTestElement('@onboarding/exit-app-button').should('be.visible'); - }); - - it('Once user passed trough, skips initial run and shows connect-device modal', () => { - cy.prefixedVisit('/'); - cy.disableFirmwareHashCheck(); - cy.getTestElement('@analytics/continue-button').click(); - cy.getTestElement('@onboarding/exit-app-button').click(); - cy.getTestElement('@onboarding/viewOnly/enable').click(); - cy.getTestElement('@viewOnlyTooltip/gotIt', { timeout: 15000 }) - .should('be.visible') - .click(); - cy.discoveryShouldFinish(); - cy.safeReload(); - cy.getTestElement('@menu/switch-device').should('contain.text', 'Connected'); - }); -}); diff --git a/packages/suite-web/e2e/tests/suite/safety-checks-warning.test.ts b/packages/suite-web/e2e/tests/suite/safety-checks-warning.test.ts deleted file mode 100644 index 60866218c4e..00000000000 --- a/packages/suite-web/e2e/tests/suite/safety-checks-warning.test.ts +++ /dev/null @@ -1,106 +0,0 @@ -// group:ghatest - -import { onNavBar } from '../../support/pageObjects/topBarObject'; - -// @retry=2 - -// TODO: enable this test once https://github.com/trezor/trezor-user-env/issues/54 -// is resolved -// eslint-disable-next-line jest/no-commented-out-tests -// describe('safety_checks Warning For PromptAlways', () => { -// beforeEach(() => { -// cy.task('startEmu', { wipe: true }); -// cy.task('setupEmu'); -// cy.task('startBridge'); -// cy.viewport('macbook-13').resetDb(); -// cy.prefixedVisit('/settings/device/'); -// cy.passThroughInitialRun(); -// // TODO: set safety_checks to `PromptAlways` -// }); - -// eslint-disable-next-line jest/no-commented-out-tests -// it('Non-dismissible warning appears', () => { -// cy.getTestElement('@banner/safety-checks/button'); -// cy.getTestElement('@banner/safety-checks/dismiss').should('not.exist'); -// }); -// }) - -describe('safety_checks Warning For PromptTemporarily', () => { - beforeEach(() => { - cy.task('startEmu', { wipe: true }); - cy.task('setupEmu'); - cy.task('startBridge'); - cy.viewport('macbook-13').resetDb(); - // Start in the device settings to easily open safety_checks setting modal. - cy.prefixedVisit('/'); - cy.passThroughInitialRun(); - cy.discoveryShouldFinish(); - onNavBar.openSettings(); - cy.getTestElement('@settings/menu/device').click(); - - // Set safety_checks to `PromptTemporarily'. - // TODO: do this via the `applySetting` task once https://github.com/trezor/trezor-user-env/issues/54 - // is resolved. - cy.getTestElement('@settings/device/safety-checks-button').click({ - scrollBehavior: 'bottom', - }); - cy.get(`[data-testid="@radio-button-prompt"]`).click(); - cy.getTestElement('@safety-checks-apply').click(); - cy.getTestElement('@prompts/confirm-on-device'); - cy.task('pressYes'); - }); - - it('Dismissible warning appears', () => { - cy.getTestElement('@banner/safety-checks/button'); - cy.getTestElement('@banner/safety-checks/dismiss'); - }); - - it('CTA button opens device settings', () => { - cy.getTestElement('@banner/safety-checks/button').click(); - // In CI the path is prefixed with a branch name. Test only against the end of the path. - cy.location('pathname').should('match', /\/settings\/device$/); - }); - - it('Dismiss button hides the warning', () => { - cy.getTestElement('@banner/safety-checks/dismiss').click(); - cy.getTestElement('@banner/safety-checks/button').should('not.exist'); - }); - - it('Warning disappears when safety_checks are set to strict', () => { - // Open the safety_checks setting modal and change safety_checks to Strict. - cy.getTestElement('@settings/device/safety-checks-button').click({ - scrollBehavior: 'bottom', - }); - cy.get('[data-testid="@radio-button-strict"]').click(); - cy.getTestElement('@safety-checks-apply').click(); - cy.getTestElement('@prompts/confirm-on-device'); - cy.task('pressYes'); - // Assert the warning is gone. - cy.getTestElement('@banner/safety-checks/button').should('not.exist'); - }); - - it('Dismissed warning re-appears when safety_checks are set to strict and then to Prompt again.', () => { - // Dismiss the warning. - cy.getTestElement('@banner/safety-checks/dismiss').click(); - // Open the safety_checks setting modal and change safety_checks to Strict. - cy.getTestElement('@settings/device/safety-checks-button').click({ - scrollBehavior: 'bottom', - }); - cy.get('[data-testid="@radio-button-strict"]').click(); - cy.getTestElement('@safety-checks-apply').click(); - cy.getTestElement('@prompts/confirm-on-device'); - cy.task('pressYes'); - // Assert the warning is gone. - cy.getTestElement('@banner/safety-checks/button').should('not.exist'); - // Set safety_checks back to PromptTemporarily - cy.getTestElement('@settings/device/safety-checks-button').click({ - scrollBehavior: 'bottom', - }); - cy.get(`[data-testid="@radio-button-prompt"]`).click(); - cy.getTestElement('@safety-checks-apply').click(); - cy.getTestElement('@prompts/confirm-on-device'); - cy.task('pressYes'); - // Assert the warning appear again. - cy.getTestElement('@banner/safety-checks/button'); - }); -}); diff --git a/packages/suite-web/e2e/tests/suite/version-page.test.ts b/packages/suite-web/e2e/tests/suite/version-page.test.ts deleted file mode 100644 index bef4d1bca08..00000000000 --- a/packages/suite-web/e2e/tests/suite/version-page.test.ts +++ /dev/null @@ -1,17 +0,0 @@ -// @group_suite -// @retry=2 -import { getSuiteVersion } from '@trezor/env-utils'; - -describe('There is a hidden route (not accessible in UI)', () => { - beforeEach(() => { - cy.viewport('macbook-13').resetDb(); - }); - - it('/version', () => { - const suiteVersion = getSuiteVersion(); - - cy.prefixedVisit('/version'); - cy.getTestElement('@version/number').should('contain', suiteVersion); - cy.getTestElement('@modal/version').screenshot('version-modal'); - }); -});