@reown/appkit-adapter-wagmi 1.6.6 → 1.6.7-basic-test.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,631 @@
1
+ import { estimateGas, getAccount, getBalance, getConnections, getEnsAvatar, getEnsName, http, signMessage, switchChain, getEnsAddress as wagmiGetEnsAddress, sendTransaction as wagmiSendTransaction, writeContract as wagmiWriteContract, waitForTransactionReceipt, watchAccount, watchPendingTransactions } from '@wagmi/core';
2
+ import * as wagmiCore from '@wagmi/core';
3
+ import { mainnet } from '@wagmi/core/chains';
4
+ import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest';
5
+ import { ConstantsUtil } from '@reown/appkit-common';
6
+ import { CaipNetworksUtil } from '@reown/appkit-utils';
7
+ import { WagmiAdapter } from '../client';
8
+ import { LimitterUtil } from '../utils/LimitterUtil';
9
+ import { mockAppKit } from './mocks/AppKit';
10
+ vi.mock('@wagmi/core', async () => {
11
+ const actual = await vi.importActual('@wagmi/core');
12
+ return {
13
+ ...actual,
14
+ addConnector: vi.fn(),
15
+ connect: vi.fn(() => mockConnect()),
16
+ disconnect: vi.fn(),
17
+ createConfig: vi.fn(() => mockWagmiConfig),
18
+ getConnections: vi.fn(),
19
+ switchChain: vi.fn(),
20
+ getBalance: vi.fn(),
21
+ getEnsName: vi.fn(),
22
+ getEnsAvatar: vi.fn(),
23
+ signMessage: vi.fn(),
24
+ estimateGas: vi.fn(),
25
+ sendTransaction: vi.fn(),
26
+ getEnsAddress: vi.fn(),
27
+ writeContract: vi.fn(),
28
+ waitForTransactionReceipt: vi.fn(),
29
+ getAccount: vi.fn(),
30
+ prepareTransactionRequest: vi.fn(),
31
+ reconnect: vi.fn(),
32
+ watchAccount: vi.fn(),
33
+ watchConnections: vi.fn(),
34
+ watchPendingTransactions: vi.fn().mockReturnValue(vi.fn())
35
+ };
36
+ });
37
+ const mockProjectId = 'test-project-id';
38
+ const mockNetworks = [mainnet];
39
+ const mockCaipNetworks = CaipNetworksUtil.extendCaipNetworks(mockNetworks, {
40
+ projectId: mockProjectId,
41
+ customNetworkImageUrls: {}
42
+ });
43
+ const mockWagmiConfig = {
44
+ connectors: [
45
+ {
46
+ id: 'test-connector',
47
+ getProvider() {
48
+ return Promise.resolve({ connect: vi.fn(), request: vi.fn() });
49
+ }
50
+ }
51
+ ],
52
+ _internal: {
53
+ connectors: {
54
+ setup: vi.fn(),
55
+ setState: vi.fn()
56
+ }
57
+ }
58
+ };
59
+ const mockConnect = vi.fn(() => ({
60
+ chainId: 1,
61
+ address: '0x123',
62
+ accounts: ['0x123']
63
+ }));
64
+ describe('WagmiAdapter', () => {
65
+ let adapter;
66
+ beforeEach(() => {
67
+ vi.clearAllMocks();
68
+ adapter = new WagmiAdapter({
69
+ networks: mockNetworks,
70
+ projectId: mockProjectId
71
+ });
72
+ });
73
+ describe('WagmiAdapter - constructor and initialization', () => {
74
+ it('should initialize with correct parameters', () => {
75
+ expect(adapter.projectId).toBe(mockProjectId);
76
+ expect(adapter.adapterType).toBe('wagmi');
77
+ expect(adapter.namespace).toBe('eip155');
78
+ });
79
+ it('should set wagmi connectors', async () => {
80
+ vi.spyOn(wagmiCore, 'watchConnectors').mockImplementation(vi.fn());
81
+ vi.spyOn(wagmiCore, 'watchConnectors');
82
+ await adapter.syncConnectors({ networks: [mainnet], projectId: 'YOUR_PROJECT_ID' }, mockAppKit);
83
+ expect(wagmiCore.watchConnectors).toHaveBeenCalledOnce();
84
+ expect(adapter.connectors).toStrictEqual([
85
+ {
86
+ chain: 'eip155',
87
+ chains: [],
88
+ explorerId: undefined,
89
+ id: 'test-connector',
90
+ imageId: undefined,
91
+ imageUrl: undefined,
92
+ info: { rdns: 'test-connector' },
93
+ provider: {
94
+ connect: expect.any(Function),
95
+ request: expect.any(Function)
96
+ },
97
+ name: undefined,
98
+ type: 'EXTERNAL'
99
+ }
100
+ ]);
101
+ });
102
+ it('should not set info property for injected connector', () => {
103
+ const mockConnectors = [
104
+ {
105
+ id: 'Browser Wallet',
106
+ name: 'Browser Wallet',
107
+ type: 'injected',
108
+ info: { rdns: 'Browser Wallet' }
109
+ }
110
+ ];
111
+ adapter.syncConnectors(mockConnectors);
112
+ const injectedConnector = mockConnectors.filter((c) => c.id === 'injected')[0];
113
+ expect(injectedConnector?.info).toBeUndefined();
114
+ });
115
+ it('should return reown RPC by default', () => {
116
+ expect(adapter.wagmiChains?.[0].rpcUrls.default.http[0]).toBe(`https://rpc.walletconnect.org/v1/?chainId=eip155%3A1&projectId=${mockProjectId}`);
117
+ });
118
+ it('should return custom RPC if transports is provided', () => {
119
+ const adapterWithCustomRpc = new WagmiAdapter({
120
+ networks: mockNetworks,
121
+ projectId: mockProjectId,
122
+ transports: {
123
+ [mainnet.id]: http('https://cloudflare-eth.com')
124
+ }
125
+ });
126
+ expect(adapterWithCustomRpc.wagmiChains?.[0].rpcUrls.default.http[0]).toBe(`https://cloudflare-eth.com`);
127
+ });
128
+ it('should add connector with provider', async () => {
129
+ const mockConnector = {
130
+ id: 'injected',
131
+ name: 'Injected Wallet',
132
+ type: 'injected',
133
+ getProvider() {
134
+ return Promise.resolve({ connect: vi.fn(), request: vi.fn() });
135
+ }
136
+ };
137
+ await adapter.addWagmiConnector(mockConnector);
138
+ expect(adapter.connectors).toStrictEqual([
139
+ {
140
+ chain: 'eip155',
141
+ chains: [],
142
+ explorerId: undefined,
143
+ id: 'injected',
144
+ imageId: '07ba87ed-43aa-4adf-4540-9e6a2b9cae00',
145
+ imageUrl: undefined,
146
+ info: undefined,
147
+ name: 'Browser Wallet',
148
+ provider: {
149
+ connect: expect.any(Function),
150
+ request: expect.any(Function)
151
+ },
152
+ type: 'INJECTED'
153
+ }
154
+ ]);
155
+ });
156
+ });
157
+ describe('WagmiAdapter - signMessage', () => {
158
+ it('should sign a message successfully', async () => {
159
+ const mockSignature = '0xmocksignature';
160
+ vi.mocked(signMessage).mockResolvedValueOnce(mockSignature);
161
+ const result = await adapter.signMessage({
162
+ message: 'Hello',
163
+ address: '0x123'
164
+ });
165
+ expect(result.signature).toBe(mockSignature);
166
+ });
167
+ });
168
+ describe('WagmiAdapter - sendTransaction', () => {
169
+ it('should send transaction successfully', async () => {
170
+ const mockTxHash = '0xtxhash';
171
+ vi.mocked(getAccount).mockReturnValue({
172
+ chainId: 1,
173
+ address: '0x123',
174
+ addresses: [],
175
+ chain: mainnet,
176
+ connector: {},
177
+ isConnected: true,
178
+ isReconnecting: true,
179
+ isConnecting: false,
180
+ isDisconnected: false,
181
+ status: 'reconnecting'
182
+ });
183
+ vi.mocked(wagmiSendTransaction).mockResolvedValue(mockTxHash);
184
+ vi.mocked(waitForTransactionReceipt).mockResolvedValue({});
185
+ const result = await adapter.sendTransaction({
186
+ address: '0x123',
187
+ to: '0x456',
188
+ value: BigInt(1000),
189
+ gas: BigInt(21000),
190
+ gasPrice: BigInt(2000000000),
191
+ data: '0x'
192
+ });
193
+ expect(result.hash).toBe(mockTxHash);
194
+ });
195
+ });
196
+ describe('writeContract', () => {
197
+ it('should write contract successfully', async () => {
198
+ const mockTxHash = '0xtxhash';
199
+ vi.mocked(wagmiWriteContract).mockResolvedValue(mockTxHash);
200
+ const result = await adapter.writeContract({
201
+ caipNetwork: mockCaipNetworks[0],
202
+ caipAddress: 'eip155:1:0x123',
203
+ tokenAddress: '0x123',
204
+ fromAddress: '0x456',
205
+ args: ['0x789', BigInt(1000)],
206
+ abi: [],
207
+ method: 'transfer',
208
+ chainNamespace: 'eip155'
209
+ });
210
+ expect(result.hash).toBe(mockTxHash);
211
+ });
212
+ });
213
+ describe('WagmiAdapter - getEnsAddress', () => {
214
+ it('should resolve ENS address successfully', async () => {
215
+ const mockAddress = '0x123';
216
+ vi.mocked(wagmiGetEnsAddress).mockResolvedValue(mockAddress);
217
+ const result = await adapter.getEnsAddress({
218
+ name: 'test.eth',
219
+ caipNetwork: mockCaipNetworks[0]
220
+ });
221
+ expect(result.address).toBe(mockAddress);
222
+ });
223
+ it('should return false for unresolvable ENS', async () => {
224
+ vi.mocked(wagmiGetEnsAddress).mockResolvedValue(null);
225
+ const result = await adapter.getEnsAddress({
226
+ name: 'nonexistent.eth',
227
+ caipNetwork: mockCaipNetworks[0]
228
+ });
229
+ expect(result.address).toBe(false);
230
+ });
231
+ });
232
+ describe('WagmiAdapter - estimateGas', () => {
233
+ it('should estimate gas successfully', async () => {
234
+ const mockGas = BigInt(21000);
235
+ vi.mocked(estimateGas).mockResolvedValue(mockGas);
236
+ const result = await adapter.estimateGas({
237
+ address: '0x123',
238
+ to: '0x456',
239
+ data: '0x',
240
+ caipNetwork: mockCaipNetworks[0]
241
+ });
242
+ expect(result.gas).toBe(mockGas);
243
+ });
244
+ it('should throw error when estimation fails', async () => {
245
+ vi.mocked(estimateGas).mockRejectedValue(new Error());
246
+ await expect(adapter.estimateGas({
247
+ address: '0x123',
248
+ to: '0x456',
249
+ data: '0x',
250
+ caipNetwork: mockCaipNetworks[0]
251
+ })).rejects.toThrow('WagmiAdapter:estimateGas - error estimating gas');
252
+ });
253
+ });
254
+ describe('WagmiAdapter - parseUnits and formatUnits', () => {
255
+ it('should parse units correctly', () => {
256
+ const result = adapter.parseUnits({
257
+ value: '1.5',
258
+ decimals: 18
259
+ });
260
+ expect(result).toBe(BigInt('1500000000000000000'));
261
+ });
262
+ it('should format units correctly', () => {
263
+ const result = adapter.formatUnits({
264
+ value: BigInt('1500000000000000000'),
265
+ decimals: 18
266
+ });
267
+ expect(result).toBe('1.5');
268
+ });
269
+ });
270
+ describe('WagmiAdapter - getBalance', () => {
271
+ it('should get balance successfully', async () => {
272
+ vi.mocked(getBalance).mockResolvedValue({
273
+ formatted: '1.5',
274
+ symbol: 'ETH'
275
+ });
276
+ const result = await adapter.getBalance({
277
+ address: '0x123',
278
+ chainId: 1
279
+ });
280
+ expect(result).toEqual({
281
+ balance: '1.5',
282
+ symbol: 'ETH'
283
+ });
284
+ });
285
+ it('should return empty balance when network not found', async () => {
286
+ const result = await adapter.getBalance({
287
+ address: '0x123',
288
+ chainId: 999
289
+ });
290
+ expect(result).toEqual({
291
+ balance: '',
292
+ symbol: ''
293
+ });
294
+ });
295
+ });
296
+ describe('WagmiAdapter - getProfile', () => {
297
+ it('should get profile successfully', async () => {
298
+ const mockEnsName = 'test.eth';
299
+ const mockAvatar = 'https://avatar.com/test.jpg';
300
+ vi.mocked(getEnsName).mockResolvedValue(mockEnsName);
301
+ vi.mocked(getEnsAvatar).mockResolvedValue(mockAvatar);
302
+ const result = await adapter.getProfile({
303
+ address: '0x123',
304
+ chainId: 1
305
+ });
306
+ expect(result).toEqual({
307
+ profileName: mockEnsName,
308
+ profileImage: mockAvatar
309
+ });
310
+ });
311
+ });
312
+ describe('WagmiAdapter - connect and disconnect', () => {
313
+ it('should connect successfully', async () => {
314
+ const result = await adapter.connect({
315
+ id: 'test-connector',
316
+ provider: {},
317
+ type: 'injected',
318
+ chainId: 1
319
+ });
320
+ expect(result.address).toBe('0x123');
321
+ expect(result.chainId).toBe(1);
322
+ });
323
+ it('should disconnect successfully', async () => {
324
+ const mockConnections = [
325
+ { connector: { id: 'connector1' } },
326
+ { connector: { id: 'connector2' } }
327
+ ];
328
+ vi.spyOn(wagmiCore, 'getConnections').mockReturnValue(mockConnections);
329
+ vi.spyOn(wagmiCore, 'createConfig').mockReturnValue({
330
+ connectors: mockConnections.map(({ connector }) => connector)
331
+ });
332
+ const adapter = new WagmiAdapter({
333
+ networks: mockNetworks,
334
+ projectId: mockProjectId
335
+ });
336
+ const disconnectSpy = vi.spyOn(wagmiCore, 'disconnect').mockImplementationOnce(vi.fn());
337
+ await adapter.disconnect();
338
+ expect(disconnectSpy).toHaveBeenCalledTimes(2);
339
+ });
340
+ });
341
+ describe('WagmiAdapter - switchNetwork', () => {
342
+ it('should switch network successfully', async () => {
343
+ await adapter.switchNetwork({
344
+ caipNetwork: mockCaipNetworks[0]
345
+ });
346
+ expect(switchChain).toHaveBeenCalledWith(expect.anything(), expect.objectContaining({
347
+ chainId: 1
348
+ }));
349
+ });
350
+ });
351
+ describe('WagmiAdapter - Permissions', () => {
352
+ const mockProvider = {
353
+ request: vi.fn()
354
+ };
355
+ beforeEach(() => {
356
+ vi.mocked(getConnections).mockReturnValue([
357
+ {
358
+ connector: {
359
+ getProvider: () => Promise.resolve(mockProvider)
360
+ }
361
+ }
362
+ ]);
363
+ });
364
+ it('should get capabilities from session properties', async () => {
365
+ const mockRequest = vi.fn();
366
+ const mockConnections = [
367
+ {
368
+ connector: {
369
+ id: 'test-connector',
370
+ getProvider: vi.fn().mockReturnValue({
371
+ session: {
372
+ sessionProperties: {}
373
+ },
374
+ request: mockRequest
375
+ })
376
+ }
377
+ }
378
+ ];
379
+ vi.spyOn(wagmiCore, 'getConnections').mockReturnValue(mockConnections);
380
+ vi.spyOn(wagmiCore, 'createConfig').mockReturnValue({
381
+ connectors: mockConnections.map(({ connector }) => connector)
382
+ });
383
+ const adapter = new WagmiAdapter({
384
+ networks: mockNetworks,
385
+ projectId: mockProjectId
386
+ });
387
+ await adapter.getCapabilities('eip155:1:0x123');
388
+ expect(mockRequest).toHaveBeenCalledWith({
389
+ method: 'wallet_getCapabilities',
390
+ params: ['eip155:1:0x123']
391
+ });
392
+ });
393
+ it('should call provider request with correct params', async () => {
394
+ const mockRequest = vi.fn();
395
+ const mockConnections = [
396
+ {
397
+ connector: {
398
+ id: 'test-connector',
399
+ getProvider: vi.fn().mockReturnValue({
400
+ session: {
401
+ sessionProperties: {}
402
+ },
403
+ request: mockRequest
404
+ })
405
+ }
406
+ }
407
+ ];
408
+ vi.spyOn(wagmiCore, 'getConnections').mockReturnValue(mockConnections);
409
+ vi.spyOn(wagmiCore, 'createConfig').mockReturnValue({
410
+ connectors: mockConnections.map(({ connector }) => connector)
411
+ });
412
+ const mockParams = {
413
+ pci: 'test-pci',
414
+ expiry: 1234567890,
415
+ address: '0x123',
416
+ permissions: ['eth_accounts']
417
+ };
418
+ const adapter = new WagmiAdapter({
419
+ networks: mockNetworks,
420
+ projectId: mockProjectId
421
+ });
422
+ await adapter.grantPermissions(mockParams);
423
+ expect(mockRequest).toHaveBeenCalledWith({
424
+ method: 'wallet_grantPermissions',
425
+ params: mockParams
426
+ });
427
+ });
428
+ it('should call provider request with correct params', async () => {
429
+ const mockParams = {
430
+ pci: 'test-pci',
431
+ expiry: 1234567890,
432
+ address: '0x123',
433
+ permissions: ['eth_accounts']
434
+ };
435
+ const mockRequest = vi.fn();
436
+ const mockConnections = [
437
+ {
438
+ connector: {
439
+ id: 'test-connector',
440
+ getProvider: vi.fn().mockReturnValue({
441
+ session: {
442
+ sessionProperties: {}
443
+ },
444
+ request: mockRequest
445
+ })
446
+ }
447
+ }
448
+ ];
449
+ vi.spyOn(wagmiCore, 'getConnections').mockReturnValue(mockConnections);
450
+ vi.spyOn(wagmiCore, 'createConfig').mockReturnValue({
451
+ connectors: mockConnections.map(({ connector }) => connector)
452
+ });
453
+ const adapter = new WagmiAdapter({
454
+ networks: mockNetworks,
455
+ projectId: mockProjectId
456
+ });
457
+ await adapter.revokePermissions(mockParams);
458
+ expect(mockRequest).toHaveBeenCalledWith({
459
+ method: 'wallet_revokePermissions',
460
+ params: mockParams
461
+ });
462
+ });
463
+ });
464
+ describe('WagmiAdapter - watchPendingTransactions', () => {
465
+ it('should emit pendingTransactions when transactions are pending', async () => {
466
+ const adapter = new WagmiAdapter({
467
+ networks: mockNetworks,
468
+ projectId: mockProjectId,
469
+ pendingTransactionsFilter: {
470
+ enable: true,
471
+ pollingInterval: 5000
472
+ }
473
+ });
474
+ const emitSpy = vi.spyOn(adapter, 'emit');
475
+ vi.mocked(watchPendingTransactions).mockImplementation((_, { onTransactions }) => {
476
+ onTransactions(['0xtx1', '0xtx2']);
477
+ return vi.fn();
478
+ });
479
+ adapter['setupWatchPendingTransactions']();
480
+ expect(emitSpy).toHaveBeenCalledWith('pendingTransactions');
481
+ });
482
+ it('should limit the amount of pendingTransactions calls', async () => {
483
+ const unsubscribe = vi.fn();
484
+ vi.mocked(watchAccount).mockImplementation((_, { onChange }) => {
485
+ onChange({ address: '0x123', status: 'connected' }, {});
486
+ return vi.fn();
487
+ });
488
+ vi.spyOn(wagmiCore, 'watchPendingTransactions').mockReturnValue(unsubscribe);
489
+ new WagmiAdapter({
490
+ networks: mockNetworks,
491
+ projectId: mockProjectId,
492
+ pendingTransactionsFilter: {
493
+ enable: true,
494
+ pollingInterval: 500
495
+ }
496
+ });
497
+ LimitterUtil.state.pendingTransactions = ConstantsUtil.LIMITS.PENDING_TRANSACTIONS;
498
+ await new Promise(resolve => setTimeout(resolve, 100));
499
+ expect(unsubscribe).toHaveBeenCalled();
500
+ });
501
+ });
502
+ describe('WagmiAdapter - watchAccount', () => {
503
+ let adapter;
504
+ beforeAll(() => {
505
+ adapter = new WagmiAdapter({
506
+ networks: mockNetworks,
507
+ projectId: mockProjectId,
508
+ pendingTransactionsFilter: {
509
+ enable: true,
510
+ pollingInterval: 5000
511
+ }
512
+ });
513
+ });
514
+ beforeEach(() => {
515
+ vi.clearAllMocks();
516
+ });
517
+ it('should emit accountChanged if previous account status is not connected', async () => {
518
+ const currAccount = {
519
+ status: 'connected',
520
+ address: '0x123',
521
+ chainId: 1
522
+ };
523
+ const prevAccount = {
524
+ status: 'connecting',
525
+ address: '0x123',
526
+ chainId: 1
527
+ };
528
+ vi.mocked(watchAccount).mockImplementation((_, { onChange }) => {
529
+ onChange(currAccount, prevAccount);
530
+ return vi.fn();
531
+ });
532
+ const accountChangedSpy = vi.fn();
533
+ adapter.on('accountChanged', accountChangedSpy);
534
+ adapter['setupWatchers']();
535
+ expect(accountChangedSpy).toHaveBeenCalledWith({
536
+ address: currAccount.address
537
+ });
538
+ });
539
+ it('should emit accountChanged current address and previous address are not the same', async () => {
540
+ const currAccount = {
541
+ status: 'connected',
542
+ address: '0x123',
543
+ chainId: 1
544
+ };
545
+ const prevAccount = {
546
+ status: 'connected',
547
+ address: '0x321',
548
+ chainId: 1
549
+ };
550
+ vi.mocked(watchAccount).mockImplementation((_, { onChange }) => {
551
+ onChange(currAccount, prevAccount);
552
+ return vi.fn();
553
+ });
554
+ const adapter = new WagmiAdapter({
555
+ networks: mockNetworks,
556
+ projectId: mockProjectId,
557
+ pendingTransactionsFilter: {
558
+ enable: true,
559
+ pollingInterval: 5000
560
+ }
561
+ });
562
+ const accountChangedSpy = vi.fn();
563
+ adapter.on('accountChanged', accountChangedSpy);
564
+ adapter['setupWatchers']();
565
+ expect(accountChangedSpy).toHaveBeenCalledWith({
566
+ address: currAccount.address
567
+ });
568
+ });
569
+ it('should not emit accountChanged if current status is not connected', async () => {
570
+ const currAccount = {
571
+ status: 'connecting',
572
+ address: '0x123',
573
+ chainId: 1
574
+ };
575
+ const prevAccount = {
576
+ status: 'connected',
577
+ address: '0x123',
578
+ chainId: 1
579
+ };
580
+ vi.mocked(watchAccount).mockImplementation((_, { onChange }) => {
581
+ onChange(currAccount, prevAccount);
582
+ return vi.fn();
583
+ });
584
+ const accountChangedSpy = vi.fn();
585
+ adapter.on('accountChanged', accountChangedSpy);
586
+ adapter['setupWatchers']();
587
+ expect(accountChangedSpy).not.toHaveBeenCalled();
588
+ });
589
+ it('should emit disconnect if status is disconnected and previous data is connected', async () => {
590
+ const currAccount = {
591
+ status: 'disconnected',
592
+ address: undefined,
593
+ chainId: 1
594
+ };
595
+ const prevAccount = {
596
+ status: 'connected',
597
+ address: '0x123',
598
+ chainId: 1
599
+ };
600
+ vi.mocked(watchAccount).mockImplementation((_, { onChange }) => {
601
+ onChange(currAccount, prevAccount);
602
+ return vi.fn();
603
+ });
604
+ const disconnectSpy = vi.fn();
605
+ adapter.on('disconnect', disconnectSpy);
606
+ adapter['setupWatchers']();
607
+ expect(disconnectSpy).toHaveBeenCalled();
608
+ });
609
+ it('should not emit disconnect if previous account data is undefined and current account data is disconnected', async () => {
610
+ const currAccount = {
611
+ status: 'disconnected',
612
+ address: '0x123',
613
+ chainId: 1
614
+ };
615
+ const prevAccount = {
616
+ status: 'disconnected',
617
+ address: undefined,
618
+ chainId: 1
619
+ };
620
+ vi.mocked(watchAccount).mockImplementation((_, { onChange }) => {
621
+ onChange(currAccount, prevAccount);
622
+ return vi.fn();
623
+ });
624
+ const disconnectSpy = vi.fn();
625
+ adapter.on('disconnect', disconnectSpy);
626
+ adapter['setupWatchers']();
627
+ expect(disconnectSpy).not.toHaveBeenCalled();
628
+ });
629
+ });
630
+ });
631
+ //# sourceMappingURL=client.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../../../src/tests/client.test.ts"],"names":[],"mappings":"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"}