@@ -5,10 +5,11 @@ import { describe, it, cy } from 'local-cypress';
55import { mount } from 'cypress/react18' ;
66import { Environment } from '@imtbl/config' ;
77import { Web3Provider } from '@ethersproject/providers' ;
8- import { cySmartGet } from '../../lib/testUtils' ;
8+ import { cyIntercept , cySmartGet } from '../../lib/testUtils' ;
99import { ConnectLoader , ConnectLoaderParams } from './ConnectLoader' ;
1010import { StrongCheckoutWidgetsConfig } from '../../lib/withDefaultWidgetConfig' ;
1111import { ProviderEvent , WidgetTheme } from '../../lib' ;
12+ import { CustomAnalyticsProvider } from '../../context/analytics-provider/CustomAnalyticsProvider' ;
1213
1314describe ( 'ConnectLoader' , ( ) => {
1415 const config : StrongCheckoutWidgetsConfig = {
@@ -23,6 +24,7 @@ describe('ConnectLoader', () => {
2324 let providerRemoveListenerStub ;
2425 beforeEach ( ( ) => {
2526 cy . viewport ( 'ipad-2' ) ;
27+ cyIntercept ( ) ;
2628 providerOnStub = cy . stub ( ) . as ( 'providerOnStub' ) ;
2729 providerRemoveListenerStub = cy . stub ( ) . as ( 'providerRemoveListenerStub' ) ;
2830 } ) ;
@@ -32,20 +34,30 @@ describe('ConnectLoader', () => {
3234 allowedChains : [ ChainId . IMTBL_ZKEVM_TESTNET ] ,
3335 } as ConnectLoaderParams ;
3436 mount (
35- < ConnectLoader
36- widgetConfig = { config }
37- params = { params }
38- closeEvent = { ( ) => { } }
39- >
40- < div id = "inner-widget" > Inner Widget</ div >
41- </ ConnectLoader > ,
37+ < CustomAnalyticsProvider widgetConfig = { config } >
38+ < ConnectLoader
39+ widgetConfig = { config }
40+ params = { params }
41+ closeEvent = { ( ) => { } }
42+ >
43+ < div id = "inner-widget" > Inner Widget</ div >
44+ </ ConnectLoader >
45+ ,
46+ </ CustomAnalyticsProvider > ,
4247 ) ;
4348 cySmartGet ( 'wallet-list-metamask' ) . should ( 'be.visible' ) ;
4449 cy . get ( '#inner-widget' ) . should ( 'not.exist' ) ;
4550 } ) ;
4651
4752 it ( 'should show ready to connect view when provider but not connected' , ( ) => {
48- const provider = { on : providerOnStub , removeListener : providerRemoveListenerStub , request : ( ) => { } } ;
53+ const provider = {
54+ on : providerOnStub ,
55+ removeListener : providerRemoveListenerStub ,
56+ request : ( ) => { } ,
57+ getSigner : ( ) => ( {
58+ getAddress : async ( ) => Promise . resolve ( '' ) ,
59+ } ) ,
60+ } ;
4961 const params = {
5062 web3Provider : { provider } as any as Web3Provider ,
5163 allowedChains : [ ChainId . IMTBL_ZKEVM_TESTNET ] ,
@@ -58,13 +70,15 @@ describe('ConnectLoader', () => {
5870 } ) ;
5971
6072 mount (
61- < ConnectLoader
62- widgetConfig = { config }
63- params = { params }
64- closeEvent = { ( ) => { } }
65- >
66- < div id = "inner-widget" > Inner Widget</ div >
67- </ ConnectLoader > ,
73+ < CustomAnalyticsProvider widgetConfig = { config } >
74+ < ConnectLoader
75+ widgetConfig = { config }
76+ params = { params }
77+ closeEvent = { ( ) => { } }
78+ >
79+ < div id = "inner-widget" > Inner Widget</ div >
80+ </ ConnectLoader >
81+ </ CustomAnalyticsProvider > ,
6882 ) ;
6983
7084 cySmartGet ( 'footer-button' ) . should ( 'have.text' , 'Ready to connect' ) ;
@@ -110,23 +124,35 @@ describe('ConnectLoader', () => {
110124 } ) ;
111125
112126 mount (
113- < ConnectLoader
114- widgetConfig = { config }
115- params = { params }
116- closeEvent = { ( ) => { } }
117- >
118- < div id = "inner-widget" > Inner Widget</ div >
119- </ ConnectLoader > ,
127+ < CustomAnalyticsProvider widgetConfig = { config } >
128+ < ConnectLoader
129+ widgetConfig = { config }
130+ params = { params }
131+ closeEvent = { ( ) => { } }
132+ >
133+ < div id = "inner-widget" > Inner Widget</ div >
134+ </ ConnectLoader >
135+ </ CustomAnalyticsProvider > ,
120136 ) ;
121137
122138 cySmartGet ( 'switch-network-view' ) . should ( 'be.visible' ) ;
123139 cy . get ( '#inner-widget' ) . should ( 'not.exist' ) ;
124140 } ) ;
125141
126142 it ( 'should go through connect flow and show inner widget if provider not connected' , ( ) => {
127- const provider = { on : providerOnStub , removeListener : providerRemoveListenerStub , request : ( ) => { } } ;
143+ const provider = {
144+ on : providerOnStub ,
145+ removeListener : providerRemoveListenerStub ,
146+ request : ( ) => { } ,
147+ } ;
128148 const params = {
129- web3Provider : { provider } as any as Web3Provider ,
149+ web3Provider : {
150+ provider,
151+ getSigner : ( ) => ( {
152+ getAddress : async ( ) => Promise . resolve ( '' ) ,
153+ } ) ,
154+ isMetaMask : true ,
155+ } as any as Web3Provider ,
130156 allowedChains : [ ChainId . IMTBL_ZKEVM_TESTNET ] ,
131157 } ;
132158
@@ -144,24 +170,30 @@ describe('ConnectLoader', () => {
144170 cy . stub ( Checkout . prototype , 'createProvider' )
145171 . as ( 'createProviderStub' )
146172 . resolves ( {
147- provider : { provider } as any as Web3Provider ,
173+ provider : {
174+ provider,
175+ getSigner : ( ) => ( {
176+ getAddress : async ( ) => Promise . resolve ( '' ) ,
177+ } ) ,
178+ isMetaMask : true ,
179+ } as any as Web3Provider ,
148180 } ) ;
149181
150182 cy . stub ( Checkout . prototype , 'connect' )
151183 . as ( 'connectStub' )
152184 . resolves ( {
153185 provider : {
154186 provider : {
155- getSigner : ( ) => ( {
156- getAddress : async ( ) => Promise . resolve ( '' ) ,
157- } ) ,
158- getNetwork : async ( ) => ( {
159- chainId : ChainId . IMTBL_ZKEVM_TESTNET ,
160- name : ChainName . IMTBL_ZKEVM_TESTNET ,
161- } ) ,
162187 on : providerOnStub ,
163188 removeListener : providerRemoveListenerStub ,
164189 } ,
190+ getSigner : ( ) => ( {
191+ getAddress : async ( ) => Promise . resolve ( '' ) ,
192+ } ) ,
193+ getNetwork : async ( ) => ( {
194+ chainId : ChainId . IMTBL_ZKEVM_TESTNET ,
195+ name : ChainName . IMTBL_ZKEVM_TESTNET ,
196+ } ) ,
165197 } ,
166198 } ) ;
167199
@@ -173,13 +205,16 @@ describe('ConnectLoader', () => {
173205 } ) ;
174206
175207 mount (
176- < ConnectLoader
177- widgetConfig = { config }
178- params = { params }
179- closeEvent = { ( ) => { } }
180- >
181- < div id = "inner-widget" > Inner Widget</ div >
182- </ ConnectLoader > ,
208+ < CustomAnalyticsProvider widgetConfig = { config } >
209+ < ConnectLoader
210+ widgetConfig = { config }
211+ params = { params }
212+ closeEvent = { ( ) => { } }
213+ >
214+ < div id = "inner-widget" > Inner Widget</ div >
215+ </ ConnectLoader >
216+ ,
217+ </ CustomAnalyticsProvider > ,
183218 ) ;
184219
185220 cySmartGet ( 'footer-button' ) . click ( ) ;
@@ -189,7 +224,16 @@ describe('ConnectLoader', () => {
189224 it ( 'should not show connect flow when user already connected' , ( ) => {
190225 const provider = { on : providerOnStub , removeListener : providerRemoveListenerStub , request : ( ) => { } } ;
191226 const params = {
192- web3Provider : { provider } as any as Web3Provider ,
227+ web3Provider : {
228+ provider,
229+ getSigner : ( ) => ( {
230+ getAddress : async ( ) => Promise . resolve ( '' ) ,
231+ } ) ,
232+ getNetwork : async ( ) => ( {
233+ chainId : ChainId . IMTBL_ZKEVM_TESTNET ,
234+ name : ChainName . IMTBL_ZKEVM_TESTNET ,
235+ } ) ,
236+ } as any as Web3Provider ,
193237 allowedChains : [ ChainId . IMTBL_ZKEVM_TESTNET ] ,
194238 } as ConnectLoaderParams ;
195239
@@ -204,16 +248,16 @@ describe('ConnectLoader', () => {
204248 . resolves ( {
205249 provider : {
206250 provider : {
207- getSigner : ( ) => ( {
208- getAddress : async ( ) => Promise . resolve ( '' ) ,
209- } ) ,
210- getNetwork : async ( ) => ( {
211- chainId : ChainId . IMTBL_ZKEVM_TESTNET ,
212- name : ChainName . IMTBL_ZKEVM_TESTNET ,
213- } ) ,
214251 on : providerOnStub ,
215252 removeListener : providerRemoveListenerStub ,
216253 } ,
254+ getSigner : ( ) => ( {
255+ getAddress : async ( ) => Promise . resolve ( '' ) ,
256+ } ) ,
257+ getNetwork : async ( ) => ( {
258+ chainId : ChainId . IMTBL_ZKEVM_TESTNET ,
259+ name : ChainName . IMTBL_ZKEVM_TESTNET ,
260+ } ) ,
217261 } ,
218262 } ) ;
219263
@@ -229,13 +273,15 @@ describe('ConnectLoader', () => {
229273 } ) ;
230274
231275 mount (
232- < ConnectLoader
233- widgetConfig = { config }
234- params = { params }
235- closeEvent = { ( ) => { } }
236- >
237- < div id = "inner-widget" > Inner Widget</ div >
238- </ ConnectLoader > ,
276+ < CustomAnalyticsProvider widgetConfig = { config } >
277+ < ConnectLoader
278+ widgetConfig = { config }
279+ params = { params }
280+ closeEvent = { ( ) => { } }
281+ >
282+ < div id = "inner-widget" > Inner Widget</ div >
283+ </ ConnectLoader >
284+ </ CustomAnalyticsProvider > ,
239285 ) ;
240286
241287 cy . get ( '#inner-widget' ) . should ( 'be.visible' ) ;
@@ -245,7 +291,16 @@ describe('ConnectLoader', () => {
245291 it ( 'should set up event listeners for accountsChanged and chainChanged' , ( ) => {
246292 const provider = { on : providerOnStub , removeListener : providerRemoveListenerStub } ;
247293 const params = {
248- web3Provider : { provider } as any as Web3Provider ,
294+ web3Provider : {
295+ provider,
296+ getSigner : ( ) => ( {
297+ getAddress : async ( ) => Promise . resolve ( '' ) ,
298+ } ) ,
299+ getNetwork : async ( ) => ( {
300+ chainId : ChainId . IMTBL_ZKEVM_TESTNET ,
301+ name : ChainName . IMTBL_ZKEVM_TESTNET ,
302+ } ) ,
303+ } as any as Web3Provider ,
249304 allowedChains : [ ChainId . IMTBL_ZKEVM_TESTNET ] ,
250305 } as ConnectLoaderParams ;
251306
@@ -260,16 +315,16 @@ describe('ConnectLoader', () => {
260315 . resolves ( {
261316 provider : {
262317 provider : {
263- getSigner : ( ) => ( {
264- getAddress : async ( ) => Promise . resolve ( '' ) ,
265- } ) ,
266- getNetwork : async ( ) => ( {
267- chainId : ChainId . IMTBL_ZKEVM_TESTNET ,
268- name : ChainName . IMTBL_ZKEVM_TESTNET ,
269- } ) ,
270318 on : providerOnStub ,
271319 removeListener : providerRemoveListenerStub ,
272320 } ,
321+ getSigner : ( ) => ( {
322+ getAddress : async ( ) => Promise . resolve ( '' ) ,
323+ } ) ,
324+ getNetwork : async ( ) => ( {
325+ chainId : ChainId . IMTBL_ZKEVM_TESTNET ,
326+ name : ChainName . IMTBL_ZKEVM_TESTNET ,
327+ } ) ,
273328 } ,
274329 } ) ;
275330
@@ -285,13 +340,15 @@ describe('ConnectLoader', () => {
285340 } ) ;
286341
287342 mount (
288- < ConnectLoader
289- widgetConfig = { config }
290- params = { params }
291- closeEvent = { ( ) => { } }
292- >
293- < div id = "inner-widget" > Inner Widget</ div >
294- </ ConnectLoader > ,
343+ < CustomAnalyticsProvider widgetConfig = { config } >
344+ < ConnectLoader
345+ widgetConfig = { config }
346+ params = { params }
347+ closeEvent = { ( ) => { } }
348+ >
349+ < div id = "inner-widget" > Inner Widget</ div >
350+ </ ConnectLoader >
351+ </ CustomAnalyticsProvider > ,
295352 ) ;
296353
297354 cy . get ( '#inner-widget' ) . should ( 'be.visible' ) ;
0 commit comments