diff --git a/suite-native/app/e2e/pageObjects/bottomSheetActions.ts b/suite-native/app/e2e/pageObjects/bottomSheetActions.ts index d64fe0054f8b..87cda6d188df 100644 --- a/suite-native/app/e2e/pageObjects/bottomSheetActions.ts +++ b/suite-native/app/e2e/pageObjects/bottomSheetActions.ts @@ -2,7 +2,7 @@ class BottomSheetActions { async skipViewOnlyMode() { const skipViewOnlyModeButton = element(by.id('skip-view-only-mode')); - await waitFor(skipViewOnlyModeButton).toBeVisible().withTimeout(10000); + await waitFor(skipViewOnlyModeButton).toBeVisible().withTimeout(20000); await skipViewOnlyModeButton.tap(); } } diff --git a/suite-native/app/e2e/pageObjects/deviceAuthenticitySummary.ts b/suite-native/app/e2e/pageObjects/deviceAuthenticitySummary.ts new file mode 100644 index 000000000000..2755380e2bbc --- /dev/null +++ b/suite-native/app/e2e/pageObjects/deviceAuthenticitySummary.ts @@ -0,0 +1,16 @@ +class DeviceAuthenticitySummary { + async waitForScreen() { + await waitFor(element(by.id('@screen/AuthenticitySummary'))) + .toBeVisible() + .withTimeout(10000); + } + + async tapCloseButton() { + const closeButton = element(by.id('@device-authenticity/close-button')); + + await waitFor(closeButton).toBeVisible().withTimeout(10000); + await closeButton.tap(); + } +} + +export const onDeviceAuthenticitySummary = new DeviceAuthenticitySummary(); diff --git a/suite-native/app/e2e/pageObjects/deviceSettingsActions.ts b/suite-native/app/e2e/pageObjects/deviceSettingsActions.ts index 1225a936e44f..2d57c07bfc82 100644 --- a/suite-native/app/e2e/pageObjects/deviceSettingsActions.ts +++ b/suite-native/app/e2e/pageObjects/deviceSettingsActions.ts @@ -1,3 +1,7 @@ +import { scrollUntilVisible } from '../utils'; + +const checkAuthenticityButtonId = by.id('@device-authenticity/check-button'); + class DeviceSettingsActions { async waitForScreen() { await waitFor(element(by.id('@screen/DeviceSettings'))) @@ -25,6 +29,17 @@ class DeviceSettingsActions { await waitFor(disablePinProtectionButton).toBeVisible().withTimeout(10000); await disablePinProtectionButton.tap(); } + + async scrollUntilCheckAuthenticityButtonIsVisible() { + await scrollUntilVisible(checkAuthenticityButtonId); + } + + async tapCheckAuthenticityButton() { + const checkAuthenticityButton = element(checkAuthenticityButtonId); + + await waitFor(checkAuthenticityButton).toBeVisible().withTimeout(10000); + await checkAuthenticityButton.tap(); + } } export const onDeviceSettings = new DeviceSettingsActions(); diff --git a/suite-native/app/e2e/tests/deviceSettings.test.ts b/suite-native/app/e2e/tests/deviceSettings.test.ts index 91181b7f0d39..448778da1515 100644 --- a/suite-native/app/e2e/tests/deviceSettings.test.ts +++ b/suite-native/app/e2e/tests/deviceSettings.test.ts @@ -5,6 +5,7 @@ import { onAlertSheet } from '../pageObjects/alertSheetActions'; import { onBottomSheet } from '../pageObjects/bottomSheetActions'; import { onCoinEnablingInit } from '../pageObjects/coinEnablingActions'; import { onConnectingDevice } from '../pageObjects/connectingDevice'; +import { onDeviceAuthenticitySummary } from '../pageObjects/deviceAuthenticitySummary'; import { onDeviceManager } from '../pageObjects/deviceManagerActions'; import { onDeviceSettings } from '../pageObjects/deviceSettingsActions'; import { onOnboarding } from '../pageObjects/onboardingActions'; @@ -77,4 +78,22 @@ conditionalDescribe(device.getPlatform() !== 'android', 'Device settings', () => await onDeviceSettings.waitForScreen(); }); + + test('Check device authenticity', async () => { + await onDeviceSettings.scrollUntilCheckAuthenticityButtonIsVisible(); + await onDeviceSettings.tapCheckAuthenticityButton(); + + await onAlertSheet.tapPrimaryButton(); + await TrezorUserEnvLink.pressNo(); + + await onDeviceSettings.tapCheckAuthenticityButton(); + + await onAlertSheet.tapPrimaryButton(); + await TrezorUserEnvLink.pressYes(); + + await onDeviceAuthenticitySummary.waitForScreen(); + await onDeviceAuthenticitySummary.tapCloseButton(); + + await onDeviceSettings.waitForScreen(); + }); }); diff --git a/suite-native/app/e2e/utils.ts b/suite-native/app/e2e/utils.ts index 7b8d79b5e60c..0ab986953518 100644 --- a/suite-native/app/e2e/utils.ts +++ b/suite-native/app/e2e/utils.ts @@ -97,7 +97,7 @@ export const prepareTrezorEmulator = async (seed: string = MNEMONICS.mnemonic_im // Prepare Trezor device for test scenario await TrezorUserEnvLink.disconnect(); await TrezorUserEnvLink.connect(); - await TrezorUserEnvLink.startEmu({ wipe: true }); + await TrezorUserEnvLink.startEmu({ model: 'T3T1', wipe: true }); await TrezorUserEnvLink.setupEmu({ label: TREZOR_DEVICE_LABEL, mnemonic: seed, diff --git a/suite-native/module-device-settings/src/components/DeviceAuthenticityCard.tsx b/suite-native/module-device-settings/src/components/DeviceAuthenticityCard.tsx index 8b5a81b11367..da2a50be3350 100644 --- a/suite-native/module-device-settings/src/components/DeviceAuthenticityCard.tsx +++ b/suite-native/module-device-settings/src/components/DeviceAuthenticityCard.tsx @@ -89,7 +89,12 @@ export const DeviceAuthenticityCard = () => { - diff --git a/suite-native/module-device-settings/src/screens/DeviceAuthenticitySummaryScreen.tsx b/suite-native/module-device-settings/src/screens/DeviceAuthenticitySummaryScreen.tsx index b04f7f2b2f89..ba342f1acbb9 100644 --- a/suite-native/module-device-settings/src/screens/DeviceAuthenticitySummaryScreen.tsx +++ b/suite-native/module-device-settings/src/screens/DeviceAuthenticitySummaryScreen.tsx @@ -99,7 +99,11 @@ export const DeviceAuthenticitySummaryScreen = ({ )} -