|
| 1 | +import { test, expect } from 'appwright'; |
| 2 | + |
| 3 | +import TimerHelper from '../../utils/TimersHelper.js'; |
| 4 | +import { PerformanceTracker } from '../../reporters/PerformanceTracker.js'; |
| 5 | +import WelcomeScreen from '../../../wdio/screen-objects/Onboarding/OnboardingCarousel.js'; |
| 6 | +import TermOfUseScreen from '../../../wdio/screen-objects/Modals/TermOfUseScreen.js'; |
| 7 | +import OnboardingScreen from '../../../wdio/screen-objects/Onboarding/OnboardingScreen.js'; |
| 8 | +import CreateNewWalletScreen from '../../../wdio/screen-objects/Onboarding/CreateNewWalletScreen.js'; |
| 9 | +import MetaMetricsScreen from '../../../wdio/screen-objects/Onboarding/MetaMetricsScreen.js'; |
| 10 | +import OnboardingSucessScreen from '../../../wdio/screen-objects/OnboardingSucessScreen.js'; |
| 11 | +import OnboardingSheet from '../../../wdio/screen-objects/Onboarding/OnboardingSheet.js'; |
| 12 | +import SolanaFeatureSheet from '../../../wdio/screen-objects/Modals/SolanaFeatureSheet.js'; |
| 13 | +import WalletAccountModal from '../../../wdio/screen-objects/Modals/WalletAccountModal.js'; |
| 14 | +import SkipAccountSecurityModal from '../../../wdio/screen-objects/Modals/SkipAccountSecurityModal.js'; |
| 15 | +import WalletMainScreen from '../../../wdio/screen-objects/WalletMainScreen.js'; |
| 16 | + |
| 17 | +const SOLANA_MODAL_ENABLED = process.env.SOLANA_MODAL_ENABLED |
| 18 | + ? process.env.SOLANA_MODAL_ENABLED |
| 19 | + : false; |
| 20 | +test('Onboarding new wallet, SRP 1 + SRP 2 + SRP 3', async ({ |
| 21 | + device, |
| 22 | +}, testInfo) => { |
| 23 | + const screen1Timer = new TimerHelper( |
| 24 | + 'Time until the user clicks on the "Get Started" button', |
| 25 | + ); |
| 26 | + screen1Timer.start(); |
| 27 | + WelcomeScreen.device = device; |
| 28 | + TermOfUseScreen.device = device; |
| 29 | + OnboardingScreen.device = device; |
| 30 | + CreateNewWalletScreen.device = device; |
| 31 | + MetaMetricsScreen.device = device; |
| 32 | + OnboardingSucessScreen.device = device; |
| 33 | + OnboardingSheet.device = device; |
| 34 | + SolanaFeatureSheet.device = device; |
| 35 | + WalletAccountModal.device = device; |
| 36 | + SkipAccountSecurityModal.device = device; |
| 37 | + WalletMainScreen.device = device; |
| 38 | + |
| 39 | + const timer1 = new TimerHelper( |
| 40 | + 'Time since the user clicks on "Get Started" button until the Term of Use screen is visible', |
| 41 | + ); |
| 42 | + const timer2 = new TimerHelper( |
| 43 | + 'Time since the user clicks on "Aggree to T&C" button until the Onboarding screen is visible', |
| 44 | + ); |
| 45 | + const timer3 = new TimerHelper( |
| 46 | + 'Time since the user clicks on "Create new wallet" button until "continue with SRP" button is visible', |
| 47 | + ); |
| 48 | + const timer4 = new TimerHelper( |
| 49 | + 'Time since the user clicks on "Continue with SRP" button until password fields are visible', |
| 50 | + ); |
| 51 | + const timer5 = new TimerHelper( |
| 52 | + 'Time since the user clicks on "Create Password" button until "Remind me later" shows up', |
| 53 | + ); |
| 54 | + const timer6 = new TimerHelper( |
| 55 | + 'Time since the user clicks on "Proceed without wallet secure" button until Metrics screen is displayed', |
| 56 | + ); |
| 57 | + const timer7 = new TimerHelper( |
| 58 | + 'Time since the user clicks on "Aggree" button on Metrics screen until Onboarding Success screen is visible', |
| 59 | + ); |
| 60 | + const timer8 = new TimerHelper( |
| 61 | + 'Time since the user clicks on "Done" button until Solana feature sheet is visible', |
| 62 | + ); |
| 63 | + |
| 64 | + timer1.start(); |
| 65 | + await WelcomeScreen.clickGetStartedButton(); |
| 66 | + await TermOfUseScreen.isDisplayed(); |
| 67 | + timer1.stop(); |
| 68 | + await TermOfUseScreen.tapAgreeCheckBox(); |
| 69 | + await TermOfUseScreen.tapScrollEndButton(); |
| 70 | + timer2.start(); |
| 71 | + await TermOfUseScreen.tapAcceptButton(); |
| 72 | + await OnboardingScreen.isScreenTitleVisible(); |
| 73 | + timer2.stop(); |
| 74 | + timer3.start(); |
| 75 | + await OnboardingScreen.tapCreateNewWalletButton(); |
| 76 | + await OnboardingSheet.isVisible(); |
| 77 | + timer3.stop(); |
| 78 | + timer4.start(); |
| 79 | + await OnboardingSheet.tapImportSeedButton(); |
| 80 | + await CreateNewWalletScreen.isNewAccountScreenFieldsVisible(); |
| 81 | + timer4.stop(); |
| 82 | + await CreateNewWalletScreen.inputPasswordInFirstField('123456789'); |
| 83 | + await CreateNewWalletScreen.inputConfirmPasswordField('123456789'); |
| 84 | + timer5.start(); |
| 85 | + await CreateNewWalletScreen.tapSubmitButton(); |
| 86 | + await CreateNewWalletScreen.tapRemindMeLater(); |
| 87 | + await SkipAccountSecurityModal.isVisible(); |
| 88 | + timer5.stop(); |
| 89 | + timer6.start(); |
| 90 | + await SkipAccountSecurityModal.proceedWithoutWalletSecure(); |
| 91 | + await MetaMetricsScreen.isScreenTitleVisible(); |
| 92 | + timer6.stop(); |
| 93 | + timer7.start(); |
| 94 | + await MetaMetricsScreen.tapIAgreeButton(); |
| 95 | + await OnboardingSucessScreen.isVisible(); |
| 96 | + timer7.stop(); |
| 97 | + timer8.start(); |
| 98 | + await OnboardingSucessScreen.tapDone(); |
| 99 | + if (SOLANA_MODAL_ENABLED) { |
| 100 | + await SolanaFeatureSheet.isVisible(); |
| 101 | + await SolanaFeatureSheet.tapNotNowButton(); |
| 102 | + } |
| 103 | + timer8.stop(); |
| 104 | + |
| 105 | + const performanceTracker = new PerformanceTracker(); |
| 106 | + performanceTracker.addTimer(timer1); |
| 107 | + performanceTracker.addTimer(timer2); |
| 108 | + performanceTracker.addTimer(timer3); |
| 109 | + performanceTracker.addTimer(timer4); |
| 110 | + performanceTracker.addTimer(timer5); |
| 111 | + performanceTracker.addTimer(timer6); |
| 112 | + performanceTracker.addTimer(timer7); |
| 113 | + performanceTracker.addTimer(timer8); |
| 114 | + await performanceTracker.attachToTest(testInfo); |
| 115 | +}); |
0 commit comments