11import { 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
48import { 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
716describe ( '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', () => {
6462describe ( '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', () => {
9988describe ( '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 } }
0 commit comments