Skip to content

Commit 7195dad

Browse files
committed
apply requested changes
1 parent 0762eac commit 7195dad

File tree

14 files changed

+526
-217
lines changed

14 files changed

+526
-217
lines changed

packages/examples/packages/send-flow/src/index.test.tsx

Lines changed: 58 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,17 @@
11
import { expect } from '@jest/globals';
2-
import { installSnap } from '@metamask/snaps-jest';
2+
import {
3+
installSnap,
4+
getStateFromAccount,
5+
getStateFromAsset,
6+
} from '@metamask/snaps-jest';
37

48
import { SendFlow } from './components';
5-
import { MOCK_ACCOUNTS, MOCK_ASSETS } from './test-utils';
9+
import {
10+
MOCK_ACCOUNT_1,
11+
MOCK_ACCOUNT_2,
12+
MOCK_ASSETS,
13+
MOCK_OPTIONS,
14+
} from './test-utils';
615

716
describe('onRpcRequest', () => {
817
it('throws an error if the requested method does not exist', async () => {
@@ -25,12 +34,7 @@ describe('onRpcRequest', () => {
2534

2635
describe('display', () => {
2736
it('shows a custom dialog with the SendFlow interface', async () => {
28-
const { request } = await installSnap({
29-
options: {
30-
accounts: MOCK_ACCOUNTS,
31-
assets: MOCK_ASSETS,
32-
},
33-
});
37+
const { request } = await installSnap({ options: MOCK_OPTIONS });
3438

3539
const response = request({
3640
method: 'display',
@@ -40,17 +44,11 @@ describe('onRpcRequest', () => {
4044

4145
expect(sendFlowInterface).toRender(
4246
<SendFlow
43-
account={{
44-
accountId: MOCK_ACCOUNTS[0].id,
45-
addresses: [
46-
`${MOCK_ACCOUNTS[0].scopes[0]}:${MOCK_ACCOUNTS[0].address}`,
47-
],
48-
}}
49-
asset={{
50-
asset: MOCK_ACCOUNTS[0].assets[0],
51-
name: 'Solana',
52-
symbol: 'SOL',
53-
}}
47+
account={getStateFromAccount(MOCK_ACCOUNT_1)}
48+
asset={getStateFromAsset(
49+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
50+
MOCK_ASSETS['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
51+
)}
5452
useFiat={false}
5553
fiatCurrency="USD"
5654
total={{ amount: 0, fiat: 0 }}
@@ -64,10 +62,7 @@ describe('onRpcRequest', () => {
6462
describe('onHomePage', () => {
6563
it('returns a custom UI', async () => {
6664
const { onHomePage } = await installSnap({
67-
options: {
68-
accounts: MOCK_ACCOUNTS,
69-
assets: MOCK_ASSETS,
70-
},
65+
options: MOCK_OPTIONS,
7166
});
7267

7368
const response = await onHomePage();
@@ -76,17 +71,11 @@ describe('onHomePage', () => {
7671

7772
expect(sendFlowInterface).toRender(
7873
<SendFlow
79-
account={{
80-
accountId: MOCK_ACCOUNTS[0].id,
81-
addresses: [
82-
`${MOCK_ACCOUNTS[0].scopes[0]}:${MOCK_ACCOUNTS[0].address}`,
83-
],
84-
}}
85-
asset={{
86-
asset: MOCK_ACCOUNTS[0].assets[0],
87-
name: 'Solana',
88-
symbol: 'SOL',
89-
}}
74+
account={getStateFromAccount(MOCK_ACCOUNT_1)}
75+
asset={getStateFromAsset(
76+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
77+
MOCK_ASSETS['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
78+
)}
9079
useFiat={false}
9180
fiatCurrency="USD"
9281
total={{ amount: 0, fiat: 0 }}
@@ -99,10 +88,7 @@ describe('onHomePage', () => {
9988
describe('onUserInput', () => {
10089
it('handles amount input', async () => {
10190
const { request } = await installSnap({
102-
options: {
103-
accounts: MOCK_ACCOUNTS,
104-
assets: MOCK_ASSETS,
105-
},
91+
options: MOCK_OPTIONS,
10692
});
10793

10894
const response = request({
@@ -117,17 +103,11 @@ describe('onUserInput', () => {
117103

118104
expect(updatedInterface).toRender(
119105
<SendFlow
120-
account={{
121-
accountId: MOCK_ACCOUNTS[0].id,
122-
addresses: [
123-
`${MOCK_ACCOUNTS[0].scopes[0]}:${MOCK_ACCOUNTS[0].address}`,
124-
],
125-
}}
126-
asset={{
127-
asset: MOCK_ACCOUNTS[0].assets[0],
128-
name: 'Solana',
129-
symbol: 'SOL',
130-
}}
106+
account={getStateFromAccount(MOCK_ACCOUNT_1)}
107+
asset={getStateFromAsset(
108+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
109+
MOCK_ASSETS['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
110+
)}
131111
useFiat={false}
132112
fiatCurrency="USD"
133113
total={{ amount: 1.5001, fiat: 251.23 }}
@@ -140,10 +120,7 @@ describe('onUserInput', () => {
140120

141121
it('handles to input', async () => {
142122
const { request } = await installSnap({
143-
options: {
144-
accounts: MOCK_ACCOUNTS,
145-
assets: MOCK_ASSETS,
146-
},
123+
options: MOCK_OPTIONS,
147124
});
148125

149126
const response = request({
@@ -161,17 +138,11 @@ describe('onUserInput', () => {
161138

162139
expect(updatedInterface).toRender(
163140
<SendFlow
164-
account={{
165-
accountId: MOCK_ACCOUNTS[0].id,
166-
addresses: [
167-
`${MOCK_ACCOUNTS[0].scopes[0]}:${MOCK_ACCOUNTS[0].address}`,
168-
],
169-
}}
170-
asset={{
171-
asset: MOCK_ACCOUNTS[0].assets[0],
172-
name: 'Solana',
173-
symbol: 'SOL',
174-
}}
141+
account={getStateFromAccount(MOCK_ACCOUNT_1)}
142+
asset={getStateFromAsset(
143+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
144+
MOCK_ASSETS['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
145+
)}
175146
useFiat={false}
176147
fiatCurrency="USD"
177148
total={{ amount: 1.0001, fiat: 251.23 }}
@@ -184,10 +155,7 @@ describe('onUserInput', () => {
184155

185156
it('handles invalid input', async () => {
186157
const { request } = await installSnap({
187-
options: {
188-
accounts: MOCK_ACCOUNTS,
189-
assets: MOCK_ASSETS,
190-
},
158+
options: MOCK_OPTIONS,
191159
});
192160

193161
const response = request({
@@ -202,17 +170,11 @@ describe('onUserInput', () => {
202170

203171
expect(updatedInterface).toRender(
204172
<SendFlow
205-
account={{
206-
accountId: MOCK_ACCOUNTS[0].id,
207-
addresses: [
208-
`${MOCK_ACCOUNTS[0].scopes[0]}:${MOCK_ACCOUNTS[0].address}`,
209-
],
210-
}}
211-
asset={{
212-
asset: MOCK_ACCOUNTS[0].assets[0],
213-
name: 'Solana',
214-
symbol: 'SOL',
215-
}}
173+
account={getStateFromAccount(MOCK_ACCOUNT_1)}
174+
asset={getStateFromAsset(
175+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
176+
MOCK_ASSETS['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
177+
)}
216178
useFiat={false}
217179
fiatCurrency="USD"
218180
total={{ amount: 3.0000999999999998, fiat: 251.23 }}
@@ -225,10 +187,7 @@ describe('onUserInput', () => {
225187

226188
it('maintains state across multiple interactions', async () => {
227189
const { request } = await installSnap({
228-
options: {
229-
accounts: MOCK_ACCOUNTS,
230-
assets: MOCK_ASSETS,
231-
},
190+
options: MOCK_OPTIONS,
232191
});
233192

234193
const response = request({
@@ -237,25 +196,19 @@ describe('onUserInput', () => {
237196

238197
const sendFlowInterface = await response.getInterface();
239198

240-
await sendFlowInterface.selectFromSelector('account', MOCK_ACCOUNTS[1].id);
199+
await sendFlowInterface.selectFromSelector('account', MOCK_ACCOUNT_2.id);
241200

242201
await sendFlowInterface.typeInField('amount', '0.5');
243202

244203
const updatedInterface = await response.getInterface();
245204

246205
expect(updatedInterface).toRender(
247206
<SendFlow
248-
account={{
249-
accountId: MOCK_ACCOUNTS[1].id,
250-
addresses: [
251-
`${MOCK_ACCOUNTS[1].scopes[0]}:${MOCK_ACCOUNTS[1].address}`,
252-
],
253-
}}
254-
asset={{
255-
asset: MOCK_ACCOUNTS[1].assets[0],
256-
name: 'Solana',
257-
symbol: 'SOL',
258-
}}
207+
account={getStateFromAccount(MOCK_ACCOUNT_2)}
208+
asset={getStateFromAsset(
209+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
210+
MOCK_ASSETS['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
211+
)}
259212
useFiat={false}
260213
fiatCurrency="USD"
261214
total={{ amount: 1.5001, fiat: 251.23 }}
@@ -274,17 +227,11 @@ describe('onUserInput', () => {
274227

275228
expect(updatedInterface2).toRender(
276229
<SendFlow
277-
account={{
278-
accountId: MOCK_ACCOUNTS[1].id,
279-
addresses: [
280-
`${MOCK_ACCOUNTS[1].scopes[0]}:${MOCK_ACCOUNTS[1].address}`,
281-
],
282-
}}
283-
asset={{
284-
asset: MOCK_ACCOUNTS[1].assets[1],
285-
name: 'Solana',
286-
symbol: 'SOL',
287-
}}
230+
account={getStateFromAccount(MOCK_ACCOUNT_2)}
231+
asset={getStateFromAsset(
232+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
233+
MOCK_ASSETS['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
234+
)}
288235
useFiat={false}
289236
fiatCurrency="USD"
290237
total={{ amount: 1.5001, fiat: 251.23 }}
@@ -300,17 +247,11 @@ describe('onUserInput', () => {
300247

301248
expect(updatedInterface3).toRender(
302249
<SendFlow
303-
account={{
304-
accountId: MOCK_ACCOUNTS[1].id,
305-
addresses: [
306-
`${MOCK_ACCOUNTS[1].scopes[0]}:${MOCK_ACCOUNTS[1].address}`,
307-
],
308-
}}
309-
asset={{
310-
asset: MOCK_ACCOUNTS[1].assets[0],
311-
name: 'Solana',
312-
symbol: 'SOL',
313-
}}
250+
account={getStateFromAccount(MOCK_ACCOUNT_2)}
251+
asset={getStateFromAsset(
252+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
253+
MOCK_ASSETS['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
254+
)}
314255
useFiat={false}
315256
fiatCurrency="USD"
316257
total={{ amount: 1.0001, fiat: 251.23 }}

packages/examples/packages/send-flow/src/test-utils/ constants.ts

Lines changed: 0 additions & 36 deletions
This file was deleted.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { getMockAccount } from '@metamask/snaps-jest';
2+
import type { SimulationAsset } from '@metamask/snaps-jest';
3+
import type { CaipAssetType } from '@metamask/utils';
4+
5+
export const MOCK_ACCOUNT_1 = getMockAccount({
6+
address: '7S3P4HxJpyyigGzodYwHtCxZyUQe9JiBMHyRWXArAaKv',
7+
selected: true,
8+
assets: [
9+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501',
10+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
11+
],
12+
});
13+
14+
export const MOCK_ACCOUNT_2 = getMockAccount({
15+
address: 'DYw8jCTfwHNRJhhmFcbXvVDTqWMEVFBX6ZKUmG5CNSKK',
16+
selected: false,
17+
assets: ['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501'],
18+
});
19+
20+
export const MOCK_ACCOUNTS = [MOCK_ACCOUNT_1, MOCK_ACCOUNT_2];
21+
22+
export const MOCK_ASSETS: Record<CaipAssetType, SimulationAsset> = {
23+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44:501': {
24+
name: 'Solana',
25+
symbol: 'SOL',
26+
},
27+
'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v':
28+
{
29+
name: 'USDC',
30+
symbol: 'USDC',
31+
},
32+
};
33+
34+
export const MOCK_OPTIONS = {
35+
accounts: MOCK_ACCOUNTS,
36+
assets: MOCK_ASSETS,
37+
};
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export * from './ constants';
1+
export * from './accounts';

0 commit comments

Comments
 (0)