Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
97 commits
Select commit Hold shift + click to select a range
114bed1
Attempt to add Solanaa account
davibroc Oct 21, 2025
5dfe3ea
Cursor fix
davibroc Oct 21, 2025
00e2abd
Changed default fixture
davibroc Oct 22, 2025
0539a73
Added debug test script
davibroc Oct 27, 2025
ce4ff6f
Fix lint
davibroc Oct 27, 2025
3d374ba
Fixed keyring
davibroc Oct 28, 2025
263b3d7
Add price API mock
davibroc Oct 29, 2025
bde02d4
Fix lint
davibroc Oct 29, 2025
019aeb6
test: Fixed some tests
davibroc Oct 31, 2025
c7f8c07
Fixed send test
davibroc Oct 31, 2025
8b568dc
Fix more tests
davibroc Oct 31, 2025
812a939
Fixed more tests
davibroc Oct 31, 2025
df8e5dd
Fix benchmark tests
davibroc Oct 31, 2025
c924764
Fixed hardware wallets
davibroc Nov 1, 2025
89a82e6
Fixed transactions
davibroc Nov 1, 2025
d26d790
Fix lint
davibroc Nov 1, 2025
df4b54c
Various fixes
davibroc Nov 1, 2025
84987b4
Fixed onboarding
davibroc Nov 1, 2025
6fa4ea2
Fixed confirmation part 1
davibroc Nov 1, 2025
942fe8d
Various fixes
davibroc Nov 1, 2025
7ff97be
Fix tokens tests
davibroc Nov 2, 2025
d61e9aa
Fix fixture builder
davibroc Nov 2, 2025
fc5b7be
Fixed metric tests
davibroc Nov 2, 2025
944cb61
Fix account test
davibroc Nov 2, 2025
b836c7f
Fix snaps
davibroc Nov 3, 2025
f297557
Fix more tests
davibroc Nov 4, 2025
5a6bfea
Fix more tests
davibroc Nov 4, 2025
cf6cbf3
Fix snap tests
davibroc Nov 4, 2025
c74d0b0
Fix more tests
davibroc Nov 4, 2025
9ac7776
Fix BTC
davibroc Nov 4, 2025
413bc3b
Fix flask
davibroc Nov 5, 2025
a3f5515
Fix multisrp flask
davibroc Nov 5, 2025
1e0f25b
Fix flask tests
davibroc Nov 6, 2025
9c20b4e
Fix bug
davibroc Nov 6, 2025
3375607
Fix lint
davibroc Nov 6, 2025
5b7be64
Fix all
davibroc Nov 6, 2025
711833d
Fix send
davibroc Nov 6, 2025
7560bc2
Fixed account settings
davibroc Nov 6, 2025
8e7c488
removed onboard and selectAll option from connectSolanaTestDapp
davibroc Nov 7, 2025
ce56a40
Fix bridge
davibroc Nov 7, 2025
576cc0b
Fix FF
davibroc Nov 7, 2025
d4c3cee
Fixed more tests
davibroc Nov 11, 2025
b20bb42
Fix flask
davibroc Nov 11, 2025
928b6bf
Fix failures
davibroc Nov 11, 2025
df16bb9
Fix flask
davibroc Nov 11, 2025
b6209be
Fix flask and address comments
davibroc Nov 13, 2025
75e592e
Removed fixture changes
davibroc Nov 13, 2025
7a59476
Fix tests given UI changes after rebase
davibroc Nov 13, 2025
7ada52c
Add information about BIP44 failures
davibroc Nov 14, 2025
a21689b
Add more info
davibroc Nov 14, 2025
d752d66
Added more bug details and fixed some tests
davibroc Nov 14, 2025
dc9a4f1
Fixed multichain evm test
davibroc Nov 14, 2025
57be79f
Changed skip
davibroc Nov 14, 2025
c9fe6b2
Fix dapp send transaction
davibroc Nov 14, 2025
ddcff5f
Removed skip to some of the tests
davibroc Nov 14, 2025
9462f07
Fixed account balance
davibroc Nov 15, 2025
5323339
Fix balance tests
davibroc Nov 17, 2025
4b4f898
Fix solana
davibroc Nov 17, 2025
c3f0dc0
Fix snap test
davibroc Nov 17, 2025
c1cbd08
Fix websocket
davibroc Nov 17, 2025
7e7471e
Fix after rebase
davibroc Nov 17, 2025
e3aad27
Fix advance functionality
davibroc Nov 20, 2025
575bf4d
Fix seedless onboarding
davibroc Nov 20, 2025
cb8a2ac
fix: fix e2e tests
salimtb Nov 20, 2025
60305eb
Fix tests after salim PR
davibroc Nov 20, 2025
7230708
Fix 3 failures
davibroc Nov 20, 2025
5f8ac7e
Fix more tests
davibroc Nov 20, 2025
a86f2c1
Fix state logs
davibroc Nov 21, 2025
8d150c8
Fixes based on review comments
davibroc Nov 21, 2025
ca34a7a
Fix solana tests
davibroc Nov 21, 2025
76aef1c
Fix test failing after Salim changes
davibroc Nov 21, 2025
dad562b
Fix failing test
davibroc Nov 21, 2025
0f2ef15
Clean up
davibroc Nov 21, 2025
29be84c
Fixed more tests
davibroc Nov 21, 2025
f5f305c
Try different fix
davibroc Nov 21, 2025
b9438a4
test: Fix test failures after rebase (#38154)
davibroc Nov 24, 2025
32c4090
test: Remove modified vaults (#38207)
davibroc Nov 25, 2025
eaaac93
Fix review comments
davibroc Nov 26, 2025
5912f6e
Fix tests
davibroc Nov 26, 2025
8983995
Fix folders
davibroc Nov 26, 2025
e74eb2b
Fix HW wallet
davibroc Nov 26, 2025
9820fa0
Fix more tests
davibroc Nov 27, 2025
ed00434
Fix token tests
davibroc Nov 27, 2025
fbc2d42
Fix token list test
davibroc Nov 27, 2025
328a7b5
Fix failures
davibroc Dec 1, 2025
70b9c6e
Fix metric errors
davibroc Dec 1, 2025
cb62fc5
Fixed account transfer
davibroc Dec 1, 2025
b6269f6
Fix snap test
davibroc Dec 1, 2025
f24c40a
Add bug information
davibroc Dec 1, 2025
9ebb096
Fix lint
davibroc Dec 2, 2025
dc62d49
Fix conflicts
davibroc Dec 3, 2025
f899679
Fix flask tests
davibroc Dec 3, 2025
e7d8afd
Fix API specs tests
davibroc Dec 3, 2025
b1e5e8e
Fix flakiness
davibroc Dec 3, 2025
aebc834
fix 2
davibroc Dec 3, 2025
60856db
Fix
davibroc Dec 3, 2025
8a3cc4e
Fix
davibroc Dec 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 9 additions & 15 deletions test/e2e/benchmarks/user-actions-benchmark.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import { unlockWallet, withFixtures } from '../helpers';
import { loginWithBalanceValidation } from '../page-objects/flows/login.flow';
import BridgeQuotePage from '../page-objects/pages/bridge/quote-page';
import HomePage from '../page-objects/pages/home/homepage';
import HeaderNavbar from '../page-objects/pages/header-navbar';
import AccountListPage from '../page-objects/pages/account-list-page';
import {
DEFAULT_BRIDGE_FEATURE_FLAGS,
MOCK_TOKENS_ETHEREUM,
Expand Down Expand Up @@ -45,20 +47,13 @@ async function loadNewAccount(): Promise<number> {
async ({ driver }: { driver: Driver }) => {
await unlockWallet(driver);

await driver.clickElement('[data-testid="account-menu-icon"]');
await driver.clickElement(
'[data-testid="multichain-account-menu-popover-action-button"]',
);
const headerNavbar = new HeaderNavbar(driver);
await headerNavbar.openAccountMenu();
const accountListPage = new AccountListPage(driver);
await accountListPage.checkPageIsLoaded();

const timestampBeforeAction = new Date();
await driver.clickElement(
'[data-testid="multichain-account-menu-popover-add-account"]',
);
await driver.fill('[placeholder="Account 2"]', '2nd account');
await driver.clickElement({ text: 'Add account', tag: 'button' });
await driver.waitForSelector({
css: '.currency-display-component__text',
text: '0',
});
await accountListPage.addMultichainAccount();
const timestampAfterAction = new Date();
loadingTimes =
timestampAfterAction.getTime() - timestampBeforeAction.getTime();
Expand Down Expand Up @@ -101,11 +96,10 @@ async function confirmTx(): Promise<number> {
);
await driver.wait(async () => {
const confirmedTxes = await driver.findElements(
'.transaction-list__completed-transactions .transaction-list-item',
'.transaction-status-label--confirmed',
);
return confirmedTxes.length === 1;
}, 10000);

await driver.waitForSelector('.transaction-status-label--confirmed');
const timestampAfterAction = new Date();
loadingTimes =
Expand Down
12 changes: 3 additions & 9 deletions test/e2e/constants.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import { BIP44_STAGE_TWO } from './tests/multichain-accounts/feature-flag-mocks';

/** Address of the first account generated by the default local node mnemonic. */
export const LOCAL_NODE_ACCOUNT = '0xe18035bf8712672935fdb4e5e431b1a0183d2dfc';

Expand Down Expand Up @@ -140,15 +142,7 @@ export const MOCK_META_METRICS_ID =

/* Mock remote feature flags response */
export const MOCK_REMOTE_FEATURE_FLAGS_RESPONSE = {
feature1: true,
feature2: false,
feature3: {
name: 'groupC',
value: 'valueC',
},
sendRedesign: {
enabled: false,
},
...BIP44_STAGE_TWO,
};

/* Mock customized remote feature flags response*/
Expand Down
13 changes: 11 additions & 2 deletions test/e2e/fixtures/fixture-builder.js
Original file line number Diff line number Diff line change
Expand Up @@ -817,6 +817,14 @@ class FixtureBuilder {
});
}

withPreferencesControllerShowNativeTokenAsMainBalanceEnabled() {
return this.withPreferencesController({
preferences: {
showNativeTokenAsMainBalance: true,
},
});
}

withPreferencesControllerTxSimulationsDisabled() {
return this.withPreferencesController({
useTransactionSimulations: false,
Expand Down Expand Up @@ -1200,11 +1208,12 @@ class FixtureBuilder {
{
address: `__FIXTURE_SUBSTITUTION__CONTRACT${SMART_CONTRACTS.HST}`,
symbol: 'TST',
decimals: 4,
image:
'https://static.cx.metamask.io/api/v1/tokenIcons/1337/0x581c3c1a2a4ebde2a0df29b5cf4c116e42945947.png',
isERC721: false,
aggregators: [],
decimals: 4,
aggregators: ['Metamask', 'Aave'],
name: 'test',
},
],
},
Expand Down
9 changes: 1 addition & 8 deletions test/e2e/flask/btc/common-btc.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import { Mockttp } from 'mockttp';
import { withFixtures } from '../../helpers';
import { ACCOUNT_TYPE } from '../../constants';
import { Driver } from '../../webdriver/driver';
import { loginWithBalanceValidation } from '../../page-objects/flows/login.flow';
import AccountListPage from '../../page-objects/pages/account-list-page';
import HeaderNavbar from '../../page-objects/pages/header-navbar';
import FixtureBuilder from '../../fixtures/fixture-builder';
import { MultichainNetworks } from '../../../../shared/constants/multichain/networks';
import {
Expand All @@ -21,6 +18,7 @@ export async function withBtcAccountSnap(
) {
await withFixtures(
{
forceBip44Version: false,
fixtures: new FixtureBuilder()
.withEnabledNetworks({
eip155: {
Expand Down Expand Up @@ -48,11 +46,6 @@ export async function withBtcAccountSnap(
},
async ({ driver, mockServer }: { driver: Driver; mockServer: Mockttp }) => {
await loginWithBalanceValidation(driver);
// create one BTC account
await new HeaderNavbar(driver).openAccountMenu();
const accountListPage = new AccountListPage(driver);
await accountListPage.checkPageIsLoaded();
await accountListPage.addAccount({ accountType: ACCOUNT_TYPE.Bitcoin });
await test(driver, mockServer);
},
);
Expand Down
6 changes: 5 additions & 1 deletion test/e2e/flask/btc/mocks/feature-flag.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Mockttp } from 'mockttp';
import { BIP44_STAGE_TWO } from '../../../tests/multichain-accounts/feature-flag-mocks';

const FEATURE_FLAGS_URL = 'https://client-config.api.cx.metamask.io/v1/flags';

Expand All @@ -15,7 +16,10 @@ export const mockBitcoinFeatureFlag = (mockServer: Mockttp) =>
ok: true,
statusCode: 200,
json: [
{ bitcoinAccounts: { enabled: true, minimumVersion: '13.6.0' } },
{
bitcoinAccounts: { enabled: true, minimumVersion: '13.6.0' },
...BIP44_STAGE_TWO,
},
],
};
});
4 changes: 3 additions & 1 deletion test/e2e/flask/create-watch-account.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ const EOA_ADDRESS = '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045';
const SHORTENED_EOA_ADDRESS = '0xd8dA6...96045';
const DEFAULT_WATCHED_ACCOUNT_NAME = 'Watched Account 1';

describe('Account-watcher snap', function (this: Suite) {
// #37563 - Creating a watch account with EOA address is not possible with BIP44 at the moment
// eslint-disable-next-line mocha/no-skipped-tests
describe.skip('Account-watcher snap', function (this: Suite) {
describe('Adding watched accounts', function () {
it('adds watch account with valid EOA address', async function () {
await withFixtures(
Expand Down
14 changes: 7 additions & 7 deletions test/e2e/flask/multi-srp/add-accounts.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import { Suite } from 'mocha';
import { Driver } from '../../webdriver/driver';
import HeaderNavbar from '../../page-objects/pages/header-navbar';
import AccountListPage from '../../page-objects/pages/account-list-page';
import { ACCOUNT_TYPE } from '../../constants';
import { mockActiveNetworks, withMultiSrp } from './common-multi-srp';

const addAccountToSrp = async (driver: Driver, srpIndex: number) => {
Expand All @@ -12,12 +11,13 @@ const addAccountToSrp = async (driver: Driver, srpIndex: number) => {
const accountListPage = new AccountListPage(driver);
await accountListPage.checkPageIsLoaded();

// This will create 'Account 3'.
await accountListPage.addAccount({
accountType: ACCOUNT_TYPE.Ethereum,
// This will create 'Account 2'.
await accountListPage.addMultichainAccount({
srpIndex,
});
await accountListPage.checkAccountBelongsToSrp('Account 3', srpIndex);

await accountListPage.closeMultichainAccountsPage();
await accountListPage.checkAccountBelongsToSrp('Account 2', srpIndex + 1);
};

describe('Multi SRP - Add accounts', function (this: Suite) {
Expand All @@ -28,7 +28,7 @@ describe('Multi SRP - Add accounts', function (this: Suite) {
testSpecificMock: mockActiveNetworks,
},
async (driver: Driver) => {
await addAccountToSrp(driver, 1);
await addAccountToSrp(driver, 0);
},
);
});
Expand All @@ -40,7 +40,7 @@ describe('Multi SRP - Add accounts', function (this: Suite) {
testSpecificMock: mockActiveNetworks,
},
async (driver: Driver) => {
await addAccountToSrp(driver, 2);
await addAccountToSrp(driver, 1);
},
);
});
Expand Down
36 changes: 32 additions & 4 deletions test/e2e/flask/multi-srp/common-multi-srp.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { Mockttp } from 'mockttp';
import { Driver } from '../../webdriver/driver';
import FixtureBuilder from '../../fixtures/fixture-builder';
import { withFixtures } from '../../helpers';
import { WALLET_PASSWORD, withFixtures } from '../../helpers';
import AccountListPage from '../../page-objects/pages/account-list-page';
import HeaderNavbar from '../../page-objects/pages/header-navbar';
import PrivacySettings from '../../page-objects/pages/settings/privacy-settings';
import SettingsPage from '../../page-objects/pages/settings/settings-page';
import HomePage from '../../page-objects/pages/home/homepage';
import { loginWithBalanceValidation } from '../../page-objects/flows/login.flow';
import { MockedEndpoint } from '../../mock-e2e';
Expand All @@ -25,11 +27,20 @@ export async function withMultiSrp(
await withFixtures(
{
dappOptions: { numberOfTestDapps: 1 },
fixtures: new FixtureBuilder().build(),
testSpecificMock,
fixtures: new FixtureBuilder()
.withEnabledNetworks({
eip155: {
'0x539': true,
},
})
.build(),
title,
testSpecificMock: async (mockServer: Mockttp) => [
await mockActiveNetworks(mockServer),
await testSpecificMock(mockServer),
],
},
async ({ driver }: { driver: Driver; mockServer: Mockttp }) => {
async ({ driver }) => {
await loginWithBalanceValidation(driver);
const homePage = new HomePage(driver);
await homePage.checkPageIsLoaded();
Expand All @@ -44,6 +55,23 @@ export async function withMultiSrp(
);
}

export const verifySrp = async (
driver: Driver,
srp: string,
srpIndex: number,
) => {
await new HeaderNavbar(driver).openSettingsPage();
const settingsPage = new SettingsPage(driver);
await settingsPage.checkPageIsLoaded();
await settingsPage.goToPrivacySettings();

const privacySettings = new PrivacySettings(driver);
await privacySettings.openRevealSrpQuiz(srpIndex);
await privacySettings.completeRevealSrpQuiz();
await privacySettings.fillPasswordToRevealSrp(WALLET_PASSWORD);
await privacySettings.checkSrpTextIsDisplayed(srp);
};

export async function mockActiveNetworks(mockServer: Mockttp) {
return await mockServer
.forGet('https://accounts.api.cx.metamask.io/v2/activeNetworks')
Expand Down
16 changes: 8 additions & 8 deletions test/e2e/flask/multi-srp/import-srp.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,14 @@ describe('Multi SRP - Import SRP', function (this: Suite) {
async (driver: Driver) => {
const headerNavbar = new HeaderNavbar(driver);
await headerNavbar.openAccountMenu();

const accountListPage = new AccountListPage(driver);
await accountListPage.checkPageIsLoaded();
await accountListPage.openAccountDetailsModal('Account 2');

await accountListPage.openMultichainAccountMenu({
accountLabel: 'Account 1',
srpIndex: 1,
});
await accountListPage.clickMultichainAccountMenuItem('Account details');
const accountDetailsPage = new MultichainAccountDetailsPage(driver);
await accountDetailsPage.checkPageIsLoaded();
await accountDetailsPage.clickSecretRecoveryPhraseRow();

await accountDetailsPage.clickRevealRow();
const privacySettings = new PrivacySettings(driver);
await privacySettings.completeRevealSrpQuiz();
await privacySettings.fillPasswordToRevealSrp(testPassword);
Expand Down Expand Up @@ -90,7 +89,8 @@ describe('Multi SRP - Import SRP', function (this: Suite) {
const accountListPage = new AccountListPage(driver);
await accountListPage.checkPageIsLoaded();

await accountListPage.openImportSrpModal();
await accountListPage.addMultichainWallet();
await accountListPage.clickImportWallet();

const firstSrpInputSelector =
'[data-testid="srp-input-import__srp-note"]';
Expand Down
20 changes: 2 additions & 18 deletions test/e2e/flask/multi-srp/settings-reveal-srp.spec.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,13 @@
import { Suite } from 'mocha';
import { Driver } from '../../webdriver/driver';
import HeaderNavbar from '../../page-objects/pages/header-navbar';
import PrivacySettings from '../../page-objects/pages/settings/privacy-settings';
import SettingsPage from '../../page-objects/pages/settings/settings-page';
import { E2E_SRP as FIRST_TEST_E2E_SRP } from '../../fixtures/default-fixture';
import { WALLET_PASSWORD } from '../../helpers';
import {
SECOND_TEST_E2E_SRP,
mockActiveNetworks,
SECOND_TEST_E2E_SRP,
withMultiSrp,
verifySrp,
} from './common-multi-srp';

const verifySrp = async (driver: Driver, srp: string, srpIndex: number) => {
await new HeaderNavbar(driver).openSettingsPage();
const settingsPage = new SettingsPage(driver);
await settingsPage.checkPageIsLoaded();
await settingsPage.goToPrivacySettings();

const privacySettings = new PrivacySettings(driver);
await privacySettings.openRevealSrpQuiz(srpIndex);
await privacySettings.completeRevealSrpQuiz();
await privacySettings.fillPasswordToRevealSrp(WALLET_PASSWORD);
await privacySettings.checkSrpTextIsDisplayed(srp);
};

describe('Multi SRP - Reveal Imported SRP', function (this: Suite) {
const firstSrpIndex = 1;
const secondSrpIndex = 2;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ describe('Multichain API', function () {
driver,
);
await editConnectedAccountsModal.checkPageIsLoaded();
await editConnectedAccountsModal.addNewEthereumAccount();
await editConnectedAccountsModal.addNewAccount();

await connectAccountConfirmation.checkPageIsLoaded();
await connectAccountConfirmation.goToPermissionsTab();
Expand Down Expand Up @@ -332,7 +332,7 @@ describe('Multichain API', function () {
driver,
);
await editConnectedAccountsModal.checkPageIsLoaded();
await editConnectedAccountsModal.addNewEthereumAccount();
await editConnectedAccountsModal.addNewAccount();

await connectAccountConfirmation.checkPageIsLoaded();
await connectAccountConfirmation.confirmConnect();
Expand Down Expand Up @@ -388,7 +388,7 @@ describe('Multichain API', function () {
);
await editConnectedAccountsModal.checkPageIsLoaded();
await editConnectedAccountsModal.selectAccount(1);
await editConnectedAccountsModal.disconnectAccount();
await editConnectedAccountsModal.clickOnConnect();

await connectAccountConfirmation.checkPageIsLoaded();
assert.strictEqual(
Expand Down Expand Up @@ -472,8 +472,8 @@ describe('Multichain API', function () {
const expectedNewSessionScopes = [...OLD_SCOPES, ...NEW_SCOPES].map(
(scope) => ({
[scope]: getExpectedSessionScope(scope, [
ACCOUNT_1,
TREZOR_ACCOUNT,
ACCOUNT_1,
]),
}),
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ describe('Initializing a session w/ several scopes and accounts, then calling `w
driver,
);
await editConnectedAccountsModal.checkPageIsLoaded();
await editConnectedAccountsModal.addNewEthereumAccount();
await editConnectedAccountsModal.addNewAccount();

await connectAccountConfirmation.checkPageIsLoaded();
await connectAccountConfirmation.confirmConnect();
Expand Down Expand Up @@ -119,7 +119,7 @@ describe('Initializing a session w/ several scopes and accounts, then calling `w
driver,
);
await editConnectedAccountsModal.checkPageIsLoaded();
await editConnectedAccountsModal.addNewEthereumAccount();
await editConnectedAccountsModal.addNewAccount();

await connectAccountConfirmation.checkPageIsLoaded();
await connectAccountConfirmation.confirmConnect();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ describe('Call `wallet_createSession`, then update the accounts and/or scopes in
driver,
);
await editConnectedAccountsModal.checkPageIsLoaded();
await editConnectedAccountsModal.addNewEthereumAccount();
await editConnectedAccountsModal.addNewAccount();
await connectAccountConfirmation.confirmConnect();
await driver.switchToWindowWithTitle(
WINDOW_TITLES.ExtensionInFullScreenView,
Expand Down
Loading
Loading