Skip to content

Commit 2be0d1e

Browse files
committed
Merge branch 'main' into djb/e2e-tsconfig
2 parents 5682fd2 + 81920d3 commit 2be0d1e

File tree

9 files changed

+60
-25
lines changed

9 files changed

+60
-25
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@
308308
"@metamask/post-message-stream": "^9.0.0",
309309
"@metamask/ppom-validator": "0.36.0",
310310
"@metamask/preinstalled-example-snap": "^0.3.0",
311-
"@metamask/profile-sync-controller": "^10.0.0",
311+
"@metamask/profile-sync-controller": "^10.1.0",
312312
"@metamask/providers": "^20.0.0",
313313
"@metamask/queued-request-controller": "^7.0.1",
314314
"@metamask/rate-limit-controller": "^6.0.3",

privacy-snapshot.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,5 +84,6 @@
8484
"unresponsive-rpc.url",
8585
"user-storage.api.cx.metamask.io",
8686
"verify.walletconnect.com",
87-
"www.4byte.directory"
87+
"www.4byte.directory",
88+
"api.web3modal.org"
8889
]

test/e2e/tests/bridge/bridge-test-utils.ts

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { SMART_CONTRACTS } from '../../seeder/smart-contracts';
99
import { CHAIN_IDS } from '../../../../shared/constants/network';
1010
import { Driver } from '../../webdriver/driver';
1111
import type { FeatureFlagResponse } from '../../../../shared/types/bridge';
12+
import { emptyHtmlPage } from '../../mock-e2e';
1213
import {
1314
DEFAULT_FEATURE_FLAGS_RESPONSE,
1415
ETH_CONVERSION_RATE_USD,
@@ -62,7 +63,7 @@ export class BridgePage {
6263
};
6364

6465
verifyPortfolioTab = async () => {
65-
await this.driver.switchToWindowWithTitle('MetaMask Portfolio - Bridge');
66+
await this.driver.switchToWindowWithTitle('E2E Test Page');
6667
await this.driver.waitForUrlContaining({
6768
url: 'portfolio.metamask.io/bridge',
6869
});
@@ -101,16 +102,15 @@ const mockServer =
101102
};
102103
}),
103104
);
104-
const portfolioMock = async () =>
105-
await mockServer_
106-
.forGet('https://portfolio.metamask.io/bridge')
107-
.always()
108-
.thenCallback(() => {
109-
return {
110-
statusCode: 200,
111-
json: {},
112-
};
113-
});
105+
const portfolioMock = mockServer_
106+
.forGet(`https://portfolio.metamask.io/bridge`)
107+
.always()
108+
.thenCallback(() => {
109+
return {
110+
statusCode: 200,
111+
body: emptyHtmlPage(),
112+
};
113+
});
114114
return Promise.all([...featureFlagMocks, portfolioMock]);
115115
};
116116

test/e2e/tests/phishing-controller/mocks.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,16 @@ async function setupPhishingDetectionMocks(
112112
body: emptyHtmlPage(blockProvider),
113113
};
114114
});
115+
116+
await mockServer
117+
.forGet(`https://portfolio.metamask.io`)
118+
.always()
119+
.thenCallback(() => {
120+
return {
121+
statusCode: 200,
122+
body: emptyHtmlPage(),
123+
};
124+
});
115125
}
116126

117127
/**

test/e2e/tests/portfolio/portfolio-site.spec.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,21 @@
11
import { MockttpServer } from 'mockttp';
22
import { withFixtures } from '../../helpers';
3-
import { PORTFOLIO_PAGE_TITLE, MOCK_META_METRICS_ID } from '../../constants';
3+
import { MOCK_META_METRICS_ID } from '../../constants';
44
import FixtureBuilder from '../../fixture-builder';
55
import { emptyHtmlPage } from '../../mock-e2e';
66
import HomePage from '../../page-objects/pages/home/homepage';
77
import { loginWithBalanceValidation } from '../../page-objects/flows/login.flow';
8+
import MockedPage from '../../page-objects/pages/mocked-page';
89

910
describe('Portfolio site', function () {
1011
async function mockPortfolioSite(mockServer: MockttpServer) {
1112
return await mockServer
1213
.forGet('https://portfolio.metamask.io/')
1314
.withQuery({
1415
metamaskEntry: 'ext_portfolio_button',
15-
metametricsId: 'null',
16+
metametricsId: MOCK_META_METRICS_ID,
17+
metricsEnabled: 'true',
18+
marketingEnabled: 'false',
1619
})
1720
.thenCallback(() => {
1821
return {
@@ -38,12 +41,15 @@ describe('Portfolio site', function () {
3841
async ({ driver }) => {
3942
await loginWithBalanceValidation(driver);
4043
await new HomePage(driver).openPortfolioPage();
41-
await driver.switchToWindowWithTitle(PORTFOLIO_PAGE_TITLE);
44+
await driver.switchToWindowWithTitle('E2E Test Page');
4245

4346
// Verify site
4447
await driver.waitForUrl({
4548
url: `https://portfolio.metamask.io/?metamaskEntry=ext_portfolio_button&metametricsId=${MOCK_META_METRICS_ID}&metricsEnabled=true&marketingEnabled=false`,
4649
});
50+
await new MockedPage(driver).check_displayedMessage(
51+
'Empty page by MetaMask',
52+
);
4753
},
4854
);
4955
});

ui/components/app/create-new-vault/create-new-vault.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import TextField from '../../ui/text-field';
55
import { ButtonVariant, Button, Checkbox } from '../../component-library';
66
import SrpInput from '../srp-input';
77
import { PASSWORD_MIN_LENGTH } from '../../../helpers/constants/common';
8+
import { useSignOut } from '../../../hooks/identity/useAuthentication';
89

910
export default function CreateNewVault({
1011
disabled = false,
@@ -19,6 +20,8 @@ export default function CreateNewVault({
1920
const [seedPhrase, setSeedPhrase] = useState('');
2021
const [termsChecked, setTermsChecked] = useState(false);
2122

23+
const { signOut } = useSignOut();
24+
2225
const t = useI18nContext();
2326

2427
const onPasswordChange = useCallback(
@@ -73,9 +76,10 @@ export default function CreateNewVault({
7376
return;
7477
}
7578

79+
await signOut();
7680
await onSubmit(password, seedPhrase);
7781
},
78-
[isValid, onSubmit, password, seedPhrase],
82+
[isValid, onSubmit, password, seedPhrase, signOut],
7983
);
8084

8185
const toggleTermsCheck = useCallback(() => {

ui/components/app/create-new-vault/create-new-vault.test.js

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from 'react';
2-
import { screen, fireEvent } from '@testing-library/react';
2+
import { screen, fireEvent, waitFor } from '@testing-library/react';
33
import { renderWithProvider } from '../../../../test/lib/render-helpers';
44
import configureStore from '../../../store/store';
55
import mockState from '../../../../test/data/mock-state.json';
@@ -14,6 +14,13 @@ const store = configureStore({
1414
},
1515
});
1616

17+
const mockSignOut = jest.fn();
18+
jest.mock('../../../hooks/identity/useAuthentication', () => ({
19+
useSignOut: () => ({
20+
signOut: mockSignOut,
21+
}),
22+
}));
23+
1724
describe('CreateNewVault', () => {
1825
it('renders CreateNewVault component and shows Secret Recovery Phrase text', () => {
1926
renderWithProvider(
@@ -120,7 +127,7 @@ describe('CreateNewVault', () => {
120127
expect(submitButton).toBeDisabled();
121128
});
122129

123-
it('should valid', () => {
130+
it('should sign out the user and submit successfully when password and confirm password match', () => {
124131
const props = {
125132
onSubmit: jest.fn(),
126133
submitText: 'Submit',
@@ -158,7 +165,10 @@ describe('CreateNewVault', () => {
158165

159166
fireEvent.click(submitButton);
160167

161-
expect(props.onSubmit).toHaveBeenCalledWith(password, TEST_SEED);
168+
waitFor(() => {
169+
expect(mockSignOut).toHaveBeenCalled();
170+
expect(props.onSubmit).toHaveBeenCalledWith(password, TEST_SEED);
171+
});
162172
});
163173
});
164174

ui/pages/keychains/restore-vault.stories.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ const store = mockStore({
99
appState: {
1010
isLoading: false,
1111
},
12+
metamask: {
13+
isSignedIn: true,
14+
sessionData: undefined,
15+
}
1216
});
1317

1418
const meta: Meta<typeof RestoreVaultPage> = {

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6108,9 +6108,9 @@ __metadata:
61086108
languageName: node
61096109
linkType: hard
61106110

6111-
"@metamask/profile-sync-controller@npm:^10.0.0":
6112-
version: 10.0.0
6113-
resolution: "@metamask/profile-sync-controller@npm:10.0.0"
6111+
"@metamask/profile-sync-controller@npm:^10.1.0":
6112+
version: 10.1.0
6113+
resolution: "@metamask/profile-sync-controller@npm:10.1.0"
61146114
dependencies:
61156115
"@metamask/base-controller": "npm:^8.0.0"
61166116
"@metamask/keyring-api": "npm:^17.2.0"
@@ -6130,7 +6130,7 @@ __metadata:
61306130
"@metamask/providers": ^18.1.0
61316131
"@metamask/snaps-controllers": ^9.19.0
61326132
webextension-polyfill: ^0.10.0 || ^0.11.0 || ^0.12.0
6133-
checksum: 10/107f751488dafa3017a9cb75f808b27fc9864c25cdc6b7a50557f646982465c6812cbb09c00f62b01cc343c88d52ff5558378a23b2480df4ddb7589c72ee09a8
6133+
checksum: 10/09dfc1eb6a12c2e109b795f0b7dbd196fec5126996e7b39729f901802fbaf19fc41f1f8a7ff5ccb4f70d86a8e8e021667bbc4bcc3f8e593601376631e45419e1
61346134
languageName: node
61356135
linkType: hard
61366136

@@ -27369,7 +27369,7 @@ __metadata:
2736927369
"@metamask/ppom-validator": "npm:0.36.0"
2737027370
"@metamask/preferences-controller": "npm:^15.0.2"
2737127371
"@metamask/preinstalled-example-snap": "npm:^0.3.0"
27372-
"@metamask/profile-sync-controller": "npm:^10.0.0"
27372+
"@metamask/profile-sync-controller": "npm:^10.1.0"
2737327373
"@metamask/providers": "npm:^20.0.0"
2737427374
"@metamask/queued-request-controller": "npm:^7.0.1"
2737527375
"@metamask/rate-limit-controller": "npm:^6.0.3"

0 commit comments

Comments
 (0)