Skip to content

Commit 1a83a97

Browse files
chore(runway): cherry-pick fix: cp-7.47.0 add version awareness to bridge feature flag selector (#15725)
- fix: cp-7.47.0 add version awareness to bridge feature flag selector (#15498)
1 parent d6f2f34 commit 1a83a97

47 files changed

Lines changed: 326 additions & 46 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.js.env.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,3 +126,5 @@ export EIP_7702_PUBLIC_KEY=""
126126

127127
#Bridge flag to toggle between dev and prod API
128128
export BRIDGE_USE_DEV_APIS="false"
129+
130+
export MM_BRIDGE_ENABLED="true"

app/components/UI/AssetOverview/AssetOverview.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import '../../UI/Bridge/_mocks_/initialState';
12
import React from 'react';
23
import { fireEvent } from '@testing-library/react-native';
34
import { zeroAddress } from 'ethereumjs-util';

app/components/UI/Bridge/Views/BridgeView/BridgeView.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { initialState } from '../../_mocks_/initialState';
12
import { renderScreen } from '../../../../../util/test/renderWithProvider';
23
import { fireEvent, waitFor } from '@testing-library/react-native';
34
import Routes from '../../../../../constants/navigation/Routes';
@@ -8,7 +9,6 @@ import {
89
import { Hex } from '@metamask/utils';
910
import BridgeView from '.';
1011
import { createBridgeTestState } from '../../testUtils';
11-
import { initialState } from '../../_mocks_/initialState';
1212
import { RequestStatus, type QuoteResponse } from '@metamask/bridge-controller';
1313
import mockQuotes from '../../_mocks_/mock-quotes-sol-sol.json';
1414
import { SolScope } from '@metamask/keyring-api';

app/components/UI/Bridge/_mocks_/initialState.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ import { SolScope } from '@metamask/keyring-api';
44
import { ethers } from 'ethers';
55
import { formatChainIdToCaip, StatusTypes } from '@metamask/bridge-controller';
66

7+
jest.mock('../../../../core/redux/slices/bridge/utils/hasMinimumRequiredVersion', () => ({
8+
hasMinimumRequiredVersion: jest.fn().mockReturnValue(true),
9+
}));
10+
711
export const ethChainId = '0x1' as Hex;
812
export const optimismChainId = '0xa' as Hex;
913

@@ -37,6 +41,23 @@ export const initialState = {
3741
RemoteFeatureFlagController: {
3842
remoteFeatureFlags: {
3943
bridgeConfig: {
44+
minimumVersion: '0.0.0',
45+
maxRefreshCount: 5,
46+
refreshRate: 30000,
47+
support: true,
48+
chains: {
49+
[formatChainIdToCaip(ethChainId)]: {
50+
isActiveSrc: true,
51+
isActiveDest: true,
52+
},
53+
[formatChainIdToCaip(optimismChainId)]: {
54+
isActiveSrc: true,
55+
isActiveDest: true,
56+
},
57+
},
58+
},
59+
bridgeConfigV2: {
60+
minimumVersion: '0.0.0',
4061
maxRefreshCount: 5,
4162
refreshRate: 30000,
4263
support: true,

app/components/UI/Bridge/components/BridgeDestNetworkSelector/BridgeDestNetworkSelector.test.tsx

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
import { initialState } from '../../_mocks_/initialState';
12
import { fireEvent } from '@testing-library/react-native';
23
import { renderScreen } from '../../../../../util/test/renderWithProvider';
34
import { BridgeDestNetworkSelector } from '.';
45
import Routes from '../../../../../constants/navigation/Routes';
56
import { Hex } from '@metamask/utils';
67
import { setSelectedDestChainId } from '../../../../../core/redux/slices/bridge';
78
import { formatChainIdToCaip } from '@metamask/bridge-controller';
8-
import { initialState } from '../../_mocks_/initialState';
99

1010
const mockNavigate = jest.fn();
1111
const mockGoBack = jest.fn();
@@ -100,6 +100,23 @@ describe('BridgeDestNetworkSelector', () => {
100100
RemoteFeatureFlagController: {
101101
remoteFeatureFlags: {
102102
bridgeConfig: {
103+
minimumVersion: '0.0.0',
104+
maxRefreshCount: 5,
105+
refreshRate: 30000,
106+
support: true,
107+
chains: {
108+
[formatChainIdToCaip(mockChainId)]: {
109+
isActiveSrc: true,
110+
isActiveDest: false,
111+
}, // Set Ethereum to inactive as dest
112+
[formatChainIdToCaip(optimismChainId)]: {
113+
isActiveSrc: true,
114+
isActiveDest: true,
115+
},
116+
},
117+
},
118+
bridgeConfigV2: {
119+
minimumVersion: '0.0.0',
103120
maxRefreshCount: 5,
104121
refreshRate: 30000,
105122
support: true,

app/components/UI/Bridge/components/BridgeDestTokenSelector/BridgeDestTokenSelector.test.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1+
import {
2+
initialState as initialStateBase,
3+
ethToken2Address,
4+
} from '../../_mocks_/initialState';
15
import { fireEvent, waitFor } from '@testing-library/react-native';
26
import { renderScreen } from '../../../../../util/test/renderWithProvider';
37
import { BridgeDestTokenSelector } from '.';
48
import Routes from '../../../../../constants/navigation/Routes';
59
import { setDestToken } from '../../../../../core/redux/slices/bridge';
6-
import {
7-
initialState as initialStateBase,
8-
ethToken2Address,
9-
} from '../../_mocks_/initialState';
1010
import { cloneDeep } from 'lodash';
1111
import { useRoute } from '@react-navigation/native';
1212

app/components/UI/Bridge/components/BridgeSourceNetworkSelector/BridgeSourceNetworkSelector.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
import { initialState } from '../../_mocks_/initialState';
12
import { fireEvent, waitFor } from '@testing-library/react-native';
23
import { renderScreen } from '../../../../../util/test/renderWithProvider';
34
import { BridgeSourceNetworkSelector } from '.';
45
import Routes from '../../../../../constants/navigation/Routes';
56
import { Hex } from '@metamask/utils';
67
import { setSelectedSourceChainIds } from '../../../../../core/redux/slices/bridge';
78
import { BridgeSourceNetworkSelectorSelectorsIDs } from '../../../../../../e2e/selectors/Bridge/BridgeSourceNetworkSelector.selectors';
8-
import { initialState } from '../../_mocks_/initialState';
99

1010
const mockNavigate = jest.fn();
1111
const mockGoBack = jest.fn();

app/components/UI/Bridge/components/BridgeSourceTokenSelector/BridgeSourceTokenSelector.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import { initialState } from '../../_mocks_/initialState';
12
import { fireEvent, waitFor } from '@testing-library/react-native';
23
import { renderScreen } from '../../../../../util/test/renderWithProvider';
34
import { BridgeSourceTokenSelector } from '.';
45
import Routes from '../../../../../constants/navigation/Routes';
56
import { setSourceToken } from '../../../../../core/redux/slices/bridge';
6-
import { initialState } from '../../_mocks_/initialState';
77

88
const mockNavigate = jest.fn();
99
const mockGoBack = jest.fn();

app/components/UI/Bridge/components/DestinationAccountSelector.tsx/DestinationAccountSelector.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import '../../_mocks_/initialState';
12
import React from 'react';
23
import { render, fireEvent } from '@testing-library/react-native';
34
import { Provider } from 'react-redux';

app/components/UI/Bridge/components/QuoteDetailsCard/QuoteDetailsCard.test.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import '../../_mocks_/initialState';
12
import { fireEvent } from '@testing-library/react-native';
23
import { renderScreen } from '../../../../../util/test/renderWithProvider';
34
import QuoteDetailsCard from './QuoteDetailsCard';

0 commit comments

Comments
 (0)