-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy pathindex.ts
More file actions
70 lines (66 loc) · 2.09 KB
/
index.ts
File metadata and controls
70 lines (66 loc) · 2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import {
type BridgeControllerState,
getDefaultBridgeControllerState,
type GenericQuoteRequest,
} from '@metamask/bridge-controller';
import { initialState } from '../_mocks_/initialState';
import { mockBridgeReducerState } from '../_mocks_/bridgeReducerState';
import type { BridgeState } from '../../../../core/redux/slices/bridge';
import { RootState } from '../../../../reducers';
import { DeepPartial } from '../../../../util/test/renderWithProvider';
import { merge } from 'lodash';
// Re-export all fixtures (no heavy dependencies)
export * from './fixtures';
type BridgeControllerStateOverride = Partial<
Omit<BridgeControllerState, 'quoteRequest'>
> & { quoteRequest?: Partial<GenericQuoteRequest> };
/**
* Creates a complete bridge controller state by merging default state with overrides
* @param overrides - Partial state to override default values
* @returns Complete bridge controller state
*/
export const createBridgeControllerState = ({
quoteRequest,
...overrides
}: BridgeControllerStateOverride = {}): BridgeControllerState =>
merge(
getDefaultBridgeControllerState(),
overrides,
quoteRequest
? {
quoteRequest: Array.isArray(quoteRequest)
? quoteRequest
: [quoteRequest],
}
: {},
);
/**
* Creates a complete test state for bridge components/hooks
* @param overrides - Object containing optional overrides for bridge controller and reducer state
* @returns Complete test state
*/
export const createBridgeTestState = (
overrides: {
bridgeControllerOverrides?: BridgeControllerStateOverride;
bridgeReducerOverrides?: Partial<BridgeState>;
} = {},
state: DeepPartial<RootState> = initialState,
) => {
const bridgeControllerState = createBridgeControllerState(
overrides.bridgeControllerOverrides ?? {},
);
return {
...state,
engine: {
...state.engine,
backgroundState: {
...state.engine?.backgroundState,
BridgeController: bridgeControllerState,
},
},
bridge: {
...mockBridgeReducerState,
...(overrides.bridgeReducerOverrides ?? {}),
},
};
};