1+ import { Suite } from 'mocha' ;
2+ import { Mockttp } from 'mockttp' ;
3+ import AccountListPage from '../../page-objects/pages/account-list-page' ;
4+ import WalletDetailsPage from '../../page-objects/pages/wallet-details-page' ;
5+ import { Driver } from '../../webdriver/driver' ;
6+ import { withFixtures } from '../../helpers' ;
7+ import HeaderNavbar from '../../page-objects/pages/header-navbar' ;
8+ import HomePage from '../../page-objects/pages/home/homepage' ;
9+ import FixtureBuilder from '../../fixture-builder' ;
10+ import { loginWithBalanceValidation } from '../../page-objects/flows/login.flow' ;
11+ import { ACCOUNT_TYPE } from '../../constants' ;
12+ import {
13+ mockMultichainAccountsFeatureFlag ,
14+ } from './common' ;
15+
16+ describe ( 'Multichain Accounts - Wallet Details' , function ( this : Suite ) {
17+ it ( 'should view wallet details with one Ethereum and one Solana account and show SRP backup reminder' , async function ( ) {
18+ await withFixtures (
19+ {
20+ fixtures : new FixtureBuilder ( )
21+ . withKeyringControllerMultiSRP ( )
22+ . withEnabledNetworks ( {
23+ eip155 : {
24+ '0x539' : true ,
25+ } ,
26+ solana : {
27+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' : true ,
28+ } ,
29+ } )
30+ . withPreferencesController ( {
31+ dismissSeedBackUpReminder : false ,
32+ } )
33+ . build ( ) ,
34+ title : this . test ?. fullTitle ( ) ,
35+ testSpecificMock : async ( mockServer : Mockttp ) => {
36+ return mockMultichainAccountsFeatureFlag ( mockServer ) ;
37+ } ,
38+ manifestFlags : {
39+ remoteFeatureFlags : {
40+ addSolanaAccount : true ,
41+ } ,
42+ } ,
43+ dapp : true ,
44+ } ,
45+ async ( { driver } : { driver : Driver } ) => {
46+ await loginWithBalanceValidation ( driver ) ;
47+ const homePage = new HomePage ( driver ) ;
48+ await homePage . check_pageIsLoaded ( ) ;
49+ const headerNavbar = new HeaderNavbar ( driver ) ;
50+ await headerNavbar . openAccountMenu ( ) ;
51+
52+ const accountListPage = new AccountListPage ( driver ) ;
53+ await accountListPage . check_pageIsLoaded ( ) ;
54+
55+ // Create a Solana account to match test scenario requirements
56+ await accountListPage . addAccount ( {
57+ accountType : ACCOUNT_TYPE . Solana ,
58+ accountName : 'Solana Account 1' ,
59+ } ) ;
60+ await homePage . check_pageIsLoaded ( ) ;
61+ await headerNavbar . openAccountMenu ( ) ;
62+ await accountListPage . check_pageIsLoaded ( ) ;
63+
64+ await accountListPage . check_walletDetailsButtonIsDisplayed ( ) ;
65+ await accountListPage . clickWalletDetailsButton ( ) ;
66+
67+ const walletDetailsPage = new WalletDetailsPage ( driver ) ;
68+ await walletDetailsPage . check_pageIsLoaded ( ) ;
69+
70+ await walletDetailsPage . check_walletNameIsDisplayed ( 'Wallet 1' ) ;
71+ await walletDetailsPage . check_balanceIsDisplayed ( '$42,500.00' ) ;
72+ await walletDetailsPage . check_accountIsDisplayed ( 'Account 1' ) ;
73+ await walletDetailsPage . check_accountIsDisplayed ( 'Solana Account 1' ) ;
74+ } ,
75+ ) ;
76+ } ) ;
77+
78+ it ( 'should add new Ethereum account from wallet details' , async function ( ) {
79+ await withFixtures (
80+ {
81+ fixtures : new FixtureBuilder ( )
82+ . withKeyringControllerMultiSRP ( )
83+ . withEnabledNetworks ( {
84+ eip155 : {
85+ '0x539' : true ,
86+ } ,
87+ solana : {
88+ 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' : true ,
89+ } ,
90+ } )
91+ . build ( ) ,
92+ title : this . test ?. fullTitle ( ) ,
93+ testSpecificMock : async ( mockServer : Mockttp ) => {
94+ return mockMultichainAccountsFeatureFlag ( mockServer ) ;
95+ } ,
96+ manifestFlags : {
97+ remoteFeatureFlags : {
98+ addSolanaAccount : true ,
99+ } ,
100+ } ,
101+ dapp : true ,
102+ } ,
103+ async ( { driver } : { driver : Driver } ) => {
104+ await loginWithBalanceValidation ( driver ) ;
105+ const homePage = new HomePage ( driver ) ;
106+ await homePage . check_pageIsLoaded ( ) ;
107+ const headerNavbar = new HeaderNavbar ( driver ) ;
108+ await headerNavbar . openAccountMenu ( ) ;
109+
110+ const accountListPage = new AccountListPage ( driver ) ;
111+ await accountListPage . check_pageIsLoaded ( ) ;
112+
113+ // Create a Solana account to match test scenario requirements
114+ await accountListPage . addAccount ( {
115+ accountType : ACCOUNT_TYPE . Solana ,
116+ accountName : 'Solana Account 1' ,
117+ } ) ;
118+ await homePage . check_pageIsLoaded ( ) ;
119+ await headerNavbar . openAccountMenu ( ) ;
120+ await accountListPage . check_pageIsLoaded ( ) ;
121+
122+ await accountListPage . check_walletDetailsButtonIsDisplayed ( ) ;
123+ await accountListPage . clickWalletDetailsButton ( ) ;
124+
125+ const walletDetailsPage = new WalletDetailsPage ( driver ) ;
126+ await walletDetailsPage . check_pageIsLoaded ( ) ;
127+
128+ await walletDetailsPage . check_addAccountButtonIsDisplayed ( ) ;
129+ await walletDetailsPage . clickAddAccountButton ( ) ;
130+
131+ await walletDetailsPage . check_accountTypeModalIsDisplayed ( ) ;
132+ await walletDetailsPage . check_ethereumAccountOptionIsDisplayed ( ) ;
133+ await walletDetailsPage . check_solanaAccountOptionIsDisplayed ( ) ;
134+
135+ await walletDetailsPage . clickEthereumAccountOption ( ) ;
136+
137+ await walletDetailsPage . check_numberOfAccountsDisplayed ( 3 ) ;
138+ } ,
139+ ) ;
140+ } ) ;
141+ } ) ;
0 commit comments