Skip to content

Commit ecca93f

Browse files
authored
Merge branch 'main' into fix/increase-gas-limit-allowance
2 parents 5a837f0 + 37e7945 commit ecca93f

9 files changed

+213
-172
lines changed

test/e2e/page-objects/pages/header-navbar.ts

+9
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ class HeaderNavbar {
55

66
private readonly accountMenuButton = '[data-testid="account-menu-icon"]';
77

8+
private readonly allPermissionsButton =
9+
'[data-testid="global-menu-connected-sites"]';
10+
811
private readonly threeDotMenuButton =
912
'[data-testid="account-options-menu-button"]';
1013

@@ -54,6 +57,12 @@ class HeaderNavbar {
5457
}
5558
}
5659

60+
async openPermissionsPage(): Promise<void> {
61+
console.log('Open permissions page in header navbar');
62+
await this.openThreeDotMenu();
63+
await this.driver.clickElement(this.allPermissionsButton);
64+
}
65+
5766
async openSnapListPage(): Promise<void> {
5867
console.log('Open account snap page');
5968
await this.openThreeDotMenu();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import { Driver } from '../../../webdriver/driver';
2+
3+
/**
4+
* Represents the permissions list page.
5+
* This page allows users to view permissions for connected sites.
6+
*/
7+
class PermissionListPage {
8+
private driver: Driver;
9+
10+
private readonly permissionsPage = '[data-testid="permissions-page"]';
11+
12+
constructor(driver: Driver) {
13+
this.driver = driver;
14+
}
15+
16+
async check_pageIsLoaded(): Promise<void> {
17+
try {
18+
await this.driver.waitForSelector(this.permissionsPage);
19+
} catch (e) {
20+
console.log(
21+
'Timeout while waiting for permission list page to be loaded',
22+
e,
23+
);
24+
throw e;
25+
}
26+
console.log('Permission list page is loaded');
27+
}
28+
29+
/**
30+
* Open permission page for site
31+
*
32+
* @param site - Site to open
33+
*/
34+
async openPermissionPageForSite(site: string): Promise<void> {
35+
console.log('Open permission page for site', site);
36+
await this.driver.clickElement({ text: site, tag: 'p' });
37+
}
38+
39+
/**
40+
* Check if account is connected to site
41+
*
42+
* @param site - Site to check
43+
*/
44+
async check_connectedToSite(site: string): Promise<void> {
45+
console.log('Check if account is connected to site', site);
46+
await this.driver.waitForSelector({ text: site, tag: 'p' });
47+
}
48+
}
49+
50+
export default PermissionListPage;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { Driver } from '../../../webdriver/driver';
2+
3+
/**
4+
* Represents the site permission page.
5+
* This page allows users to view and manage permissions for a connected site.
6+
*/
7+
class SitePermissionPage {
8+
private driver: Driver;
9+
10+
private readonly permissionPage = '[data-testid ="connections-page"]';
11+
12+
constructor(driver: Driver) {
13+
this.driver = driver;
14+
}
15+
16+
/**
17+
* Check if site permission page is loaded
18+
*
19+
* @param site - Site to check
20+
*/
21+
async check_pageIsLoaded(site: string): Promise<void> {
22+
try {
23+
await this.driver.waitForSelector(this.permissionPage);
24+
await this.driver.waitForSelector({ text: site, tag: 'span' });
25+
} catch (e) {
26+
console.log(
27+
'Timeout while waiting for site permission page to be loaded',
28+
e,
29+
);
30+
throw e;
31+
}
32+
console.log('Site permission page is loaded');
33+
}
34+
}
35+
36+
export default SitePermissionPage;

test/e2e/page-objects/pages/settings/experimental-settings.ts

+8
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ class ExperimentalSettings {
1515
private readonly redesignedSignatureToggle =
1616
'[data-testid="toggle-redesigned-confirmations-container"]';
1717

18+
private readonly requestQueueToggle =
19+
'[data-testid="experimental-setting-toggle-request-queue"] label';
20+
1821
constructor(driver: Driver) {
1922
this.driver = driver;
2023
}
@@ -41,6 +44,11 @@ class ExperimentalSettings {
4144
console.log('Toggle Redesigned Signature on experimental setting page');
4245
await this.driver.clickElement(this.redesignedSignatureToggle);
4346
}
47+
48+
async toggleRequestQueue(): Promise<void> {
49+
console.log('Toggle Request Queue on experimental setting page');
50+
await this.driver.clickElement(this.requestQueueToggle);
51+
}
4452
}
4553

4654
export default ExperimentalSettings;

test/e2e/tests/account/import-flow.spec.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import path from 'path';
2+
import { DEFAULT_FIXTURE_ACCOUNT } from '../../constants';
23
import { withFixtures } from '../../helpers';
34
import FixtureBuilder from '../../fixture-builder';
45
import AccountListPage from '../../page-objects/pages/account-list-page';
@@ -9,7 +10,6 @@ import { completeImportSRPOnboardingFlow } from '../../page-objects/flows/onboar
910

1011
describe('Import flow @no-mmi', function () {
1112
it('Import wallet using Secret Recovery Phrase with pasting word by word', async function () {
12-
const testAddress = '0x5CfE73b6021E818B776b421B1c4Db2474086a7e1';
1313
await withFixtures(
1414
{
1515
fixtures: new FixtureBuilder({ onboarding: true }).build(),
@@ -33,7 +33,7 @@ describe('Import flow @no-mmi', function () {
3333
await accountListPage.check_pageIsLoaded();
3434
await accountListPage.openAccountDetailsModal('Account 1');
3535
await accountListPage.check_addressInAccountDetailsModal(
36-
testAddress.toLowerCase(),
36+
DEFAULT_FIXTURE_ACCOUNT.toLowerCase(),
3737
);
3838
},
3939
);

test/e2e/tests/multichain/all-permissions-page.spec.js

-90
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import { DEFAULT_FIXTURE_ACCOUNT, DAPP_HOST_ADDRESS } from '../../constants';
2+
import { withFixtures, WINDOW_TITLES } from '../../helpers';
3+
import FixtureBuilder from '../../fixture-builder';
4+
import ExperimentalSettings from '../../page-objects/pages/settings/experimental-settings';
5+
import HeaderNavbar from '../../page-objects/pages/header-navbar';
6+
import Homepage from '../../page-objects/pages/home/homepage';
7+
import PermissionListPage from '../../page-objects/pages/permission/permission-list-page';
8+
import SettingsPage from '../../page-objects/pages/settings/settings-page';
9+
import TestDapp from '../../page-objects/pages/test-dapp';
10+
import { loginWithoutBalanceValidation } from '../../page-objects/flows/login.flow';
11+
12+
describe('Permissions Page', function () {
13+
it('should show connected site permissions when a single dapp is connected', async function () {
14+
await withFixtures(
15+
{
16+
dapp: true,
17+
fixtures: new FixtureBuilder().build(),
18+
title: this.test?.fullTitle(),
19+
},
20+
async ({ driver }) => {
21+
await loginWithoutBalanceValidation(driver);
22+
const testDapp = new TestDapp(driver);
23+
await testDapp.openTestDappPage();
24+
await testDapp.connectAccount(DEFAULT_FIXTURE_ACCOUNT);
25+
26+
// switch to extension window and check the site permissions
27+
await driver.switchToWindowWithTitle(
28+
WINDOW_TITLES.ExtensionInFullScreenView,
29+
);
30+
const homepage = new Homepage(driver);
31+
await homepage.check_pageIsLoaded();
32+
await homepage.check_expectedBalanceIsDisplayed();
33+
await homepage.headerNavbar.openPermissionsPage();
34+
35+
const permissionListPage = new PermissionListPage(driver);
36+
await permissionListPage.check_pageIsLoaded();
37+
await permissionListPage.check_connectedToSite(DAPP_HOST_ADDRESS);
38+
},
39+
);
40+
});
41+
42+
it('should show all permissions listed when experimental settings toggle is off', async function () {
43+
await withFixtures(
44+
{
45+
dapp: true,
46+
fixtures: new FixtureBuilder()
47+
.withPermissionControllerConnectedToTestDapp()
48+
.build(),
49+
title: this.test?.fullTitle(),
50+
},
51+
async ({ driver }) => {
52+
await loginWithoutBalanceValidation(driver);
53+
const headerNavbar = new HeaderNavbar(driver);
54+
await headerNavbar.openSettingsPage();
55+
56+
// go to experimental settings page and toggle request queue
57+
const settingsPage = new SettingsPage(driver);
58+
await settingsPage.check_pageIsLoaded();
59+
await settingsPage.goToExperimentalSettings();
60+
61+
const experimentalSettings = new ExperimentalSettings(driver);
62+
await experimentalSettings.check_pageIsLoaded();
63+
await experimentalSettings.toggleRequestQueue();
64+
await settingsPage.closeSettingsPage();
65+
66+
// go to homepage and check site permissions
67+
await new Homepage(driver).check_pageIsLoaded();
68+
await headerNavbar.openPermissionsPage();
69+
const permissionListPage = new PermissionListPage(driver);
70+
await permissionListPage.check_pageIsLoaded();
71+
await permissionListPage.check_connectedToSite(DAPP_HOST_ADDRESS);
72+
},
73+
);
74+
});
75+
});

0 commit comments

Comments
 (0)