@reown/appkit-adapter-wagmi 1.6.9 → 1.7.0-alpha.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,25 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { LimitterUtil } from '../utils/LimitterUtil';
3
+ describe('LimitterUtil', () => {
4
+ it('should have valid default state', () => {
5
+ expect(LimitterUtil.state).toEqual({
6
+ pendingTransactions: 0
7
+ });
8
+ });
9
+ it('should increase state limit', () => {
10
+ LimitterUtil.increase('pendingTransactions');
11
+ expect(LimitterUtil.state.pendingTransactions).toBe(1);
12
+ });
13
+ it('should decrease state limit', () => {
14
+ expect(LimitterUtil.state.pendingTransactions).toBe(1);
15
+ LimitterUtil.decrease('pendingTransactions');
16
+ expect(LimitterUtil.state.pendingTransactions).toBe(0);
17
+ });
18
+ it('should reset state limit', () => {
19
+ LimitterUtil.increase('pendingTransactions');
20
+ expect(LimitterUtil.state.pendingTransactions).toEqual(1);
21
+ LimitterUtil.reset('pendingTransactions');
22
+ expect(LimitterUtil.state.pendingTransactions).toEqual(0);
23
+ });
24
+ });
25
+ //# sourceMappingURL=LimitUtil.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LimitUtil.test.js","sourceRoot":"","sources":["../../../../src/tests/LimitUtil.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;YACjC,mBAAmB,EAAE,CAAC;SACvB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;QAC5C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtD,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;QAC5C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAA;QAC5C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QACzD,YAAY,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACzC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IAC3D,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,125 @@
1
+ import { getAddress } from 'viem';
2
+ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
3
+ import { mainnet } from '@reown/appkit/networks';
4
+ import { walletConnect } from '../connectors/UniversalConnector';
5
+ import { mockAddress, mockAppKit, mockCaipAddress, mockCaipNetworks, mockProvider, mockSession } from './mocks/AppKit';
6
+ vi.mock('@reown/appkit-core', async (importOriginal) => {
7
+ const actual = await importOriginal();
8
+ return {
9
+ ...actual,
10
+ StorageUtil: {
11
+ getActiveNamespace: vi.fn(),
12
+ getStoredActiveCaipNetworkId: vi.fn()
13
+ }
14
+ };
15
+ });
16
+ const mockStorage = {
17
+ getItem: vi.fn(),
18
+ setItem: vi.fn()
19
+ };
20
+ const mockEmitter = {
21
+ emit: vi.fn(),
22
+ on: vi.fn(),
23
+ removeListener: vi.fn()
24
+ };
25
+ describe('UniversalConnector', () => {
26
+ let connectorInstance;
27
+ beforeEach(() => {
28
+ const createConnector = walletConnect({
29
+ isNewChainsStale: false
30
+ }, mockAppKit, mockCaipNetworks);
31
+ connectorInstance = createConnector({
32
+ chains: mockCaipNetworks,
33
+ options: {},
34
+ storage: mockStorage,
35
+ emitter: mockEmitter
36
+ });
37
+ });
38
+ afterEach(() => {
39
+ vi.clearAllMocks();
40
+ });
41
+ describe('connect', () => {
42
+ it('should connect successfully', async () => {
43
+ const expectedChainId = mainnet.id;
44
+ mockProvider.enable.mockResolvedValue([mockAddress]);
45
+ const result = await connectorInstance.connect();
46
+ expect(result).toEqual({
47
+ accounts: [getAddress(mockAddress)],
48
+ chainId: expectedChainId
49
+ });
50
+ expect(mockProvider.on).toHaveBeenCalled();
51
+ expect(mockProvider.session.namespaces.eip155.accounts).toEqual([mockCaipAddress]);
52
+ expect(mockProvider.setDefaultChain).toHaveBeenCalledWith(`eip155:${expectedChainId}`);
53
+ });
54
+ it('should handle user rejection', async () => {
55
+ mockProvider.enable.mockRejectedValue(new Error('user rejected'));
56
+ await expect(connectorInstance.connect()).rejects.toThrow('User rejected the request.');
57
+ });
58
+ });
59
+ describe('getAccounts', () => {
60
+ it('should return accounts from provider session', async () => {
61
+ mockProvider.enable.mockResolvedValue([mockAddress]);
62
+ await connectorInstance.connect();
63
+ const accounts = await connectorInstance.getAccounts();
64
+ expect(accounts).toEqual([mockAddress]);
65
+ });
66
+ it('should return empty array when no session exists', async () => {
67
+ mockProvider.session = undefined;
68
+ const accounts = await connectorInstance.getAccounts();
69
+ expect(accounts).toEqual([]);
70
+ });
71
+ });
72
+ describe('disconnect', () => {
73
+ it('should disconnect successfully', async () => {
74
+ mockProvider.session = mockSession;
75
+ await connectorInstance.connect();
76
+ await connectorInstance.disconnect();
77
+ expect(mockProvider.disconnect).toHaveBeenCalled();
78
+ expect(mockProvider.removeListener).toHaveBeenCalled();
79
+ });
80
+ });
81
+ describe('switchChain', () => {
82
+ it('should switch chain successfully', async () => {
83
+ mockProvider.request.mockResolvedValue(null);
84
+ const result = await connectorInstance.switchChain({ chainId: 1 });
85
+ expect(result).toEqual(expect.objectContaining({
86
+ id: 1,
87
+ name: 'Ethereum'
88
+ }));
89
+ expect(mockProvider.request).toHaveBeenCalledWith({
90
+ method: 'wallet_switchEthereumChain',
91
+ params: [{ chainId: '0x1' }]
92
+ });
93
+ });
94
+ it('should handle adding a new chain', async () => {
95
+ mockProvider.request.mockRejectedValueOnce(new Error('chain not found'));
96
+ mockProvider.request.mockResolvedValueOnce(null);
97
+ const result = await connectorInstance.switchChain({ chainId: 1 });
98
+ expect(result).toEqual(expect.objectContaining({
99
+ id: 1,
100
+ name: 'Ethereum'
101
+ }));
102
+ expect(mockProvider.request).toHaveBeenCalledWith({
103
+ method: 'wallet_addEthereumChain',
104
+ params: [
105
+ expect.objectContaining({
106
+ chainId: '0x1',
107
+ chainName: 'Ethereum'
108
+ })
109
+ ]
110
+ });
111
+ });
112
+ });
113
+ describe.skip('isAuthorized', () => {
114
+ it('should return true when authorized', async () => {
115
+ const result = await connectorInstance.isAuthorized();
116
+ expect(result).toBe(true);
117
+ });
118
+ it('should return false when no accounts exist', async () => {
119
+ mockProvider.session.namespaces.eip155.accounts = [];
120
+ const result = await connectorInstance.isAuthorized();
121
+ expect(result).toBe(false);
122
+ });
123
+ });
124
+ });
125
+ //# sourceMappingURL=UniversalConnector.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UniversalConnector.test.js","sourceRoot":"","sources":["../../../../src/tests/UniversalConnector.test.ts"],"names":[],"mappings":"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"}