@reown/appkit 1.7.2-rc2 → 1.7.2

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.
Files changed (83) hide show
  1. package/dist/esm/exports/constants.js +1 -1
  2. package/dist/esm/exports/constants.js.map +1 -1
  3. package/dist/esm/package.json +1 -1
  4. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  5. package/dist/types/exports/constants.d.ts +1 -1
  6. package/dist/types/src/client/appkit-base-client.d.ts +1 -1
  7. package/package.json +9 -9
  8. package/dist/esm/tests/client/adapter-management.test.js +0 -85
  9. package/dist/esm/tests/client/adapter-management.test.js.map +0 -1
  10. package/dist/esm/tests/client/appkit-core.test.js +0 -88
  11. package/dist/esm/tests/client/appkit-core.test.js.map +0 -1
  12. package/dist/esm/tests/client/balance.test.js +0 -56
  13. package/dist/esm/tests/client/balance.test.js.map +0 -1
  14. package/dist/esm/tests/client/connection.test.js +0 -191
  15. package/dist/esm/tests/client/connection.test.js.map +0 -1
  16. package/dist/esm/tests/client/debug-mode.test.js +0 -64
  17. package/dist/esm/tests/client/debug-mode.test.js.map +0 -1
  18. package/dist/esm/tests/client/estimate-gas.test.js +0 -117
  19. package/dist/esm/tests/client/estimate-gas.test.js.map +0 -1
  20. package/dist/esm/tests/client/initialization.test.js +0 -121
  21. package/dist/esm/tests/client/initialization.test.js.map +0 -1
  22. package/dist/esm/tests/client/listeners.test.js +0 -130
  23. package/dist/esm/tests/client/listeners.test.js.map +0 -1
  24. package/dist/esm/tests/client/public-methods.test.js +0 -823
  25. package/dist/esm/tests/client/public-methods.test.js.map +0 -1
  26. package/dist/esm/tests/client/universal-adapter.test.js +0 -46
  27. package/dist/esm/tests/client/universal-adapter.test.js.map +0 -1
  28. package/dist/esm/tests/client/walletconnect-events.test.js +0 -82
  29. package/dist/esm/tests/client/walletconnect-events.test.js.map +0 -1
  30. package/dist/esm/tests/connectors/WalletConnectConnector.test.js +0 -63
  31. package/dist/esm/tests/connectors/WalletConnectConnector.test.js.map +0 -1
  32. package/dist/esm/tests/library/vue.test.js +0 -75
  33. package/dist/esm/tests/library/vue.test.js.map +0 -1
  34. package/dist/esm/tests/mocks/Account.js +0 -13
  35. package/dist/esm/tests/mocks/Account.js.map +0 -1
  36. package/dist/esm/tests/mocks/Adapter.js +0 -100
  37. package/dist/esm/tests/mocks/Adapter.js.map +0 -1
  38. package/dist/esm/tests/mocks/AppKit.js +0 -24
  39. package/dist/esm/tests/mocks/AppKit.js.map +0 -1
  40. package/dist/esm/tests/mocks/LocalStorage.js +0 -37
  41. package/dist/esm/tests/mocks/LocalStorage.js.map +0 -1
  42. package/dist/esm/tests/mocks/Networks.js +0 -17
  43. package/dist/esm/tests/mocks/Networks.js.map +0 -1
  44. package/dist/esm/tests/mocks/Options.js +0 -17
  45. package/dist/esm/tests/mocks/Options.js.map +0 -1
  46. package/dist/esm/tests/mocks/Providers.js +0 -46
  47. package/dist/esm/tests/mocks/Providers.js.map +0 -1
  48. package/dist/esm/tests/mocks/UniversalProvider.js +0 -139
  49. package/dist/esm/tests/mocks/UniversalProvider.js.map +0 -1
  50. package/dist/esm/tests/siwe.test.js +0 -261
  51. package/dist/esm/tests/siwe.test.js.map +0 -1
  52. package/dist/esm/tests/test-utils.js +0 -53
  53. package/dist/esm/tests/test-utils.js.map +0 -1
  54. package/dist/esm/tests/universal-adapter.test.js +0 -246
  55. package/dist/esm/tests/universal-adapter.test.js.map +0 -1
  56. package/dist/esm/tests/utils/HelpersUtil.test.js +0 -416
  57. package/dist/esm/tests/utils/HelpersUtil.test.js.map +0 -1
  58. package/dist/esm/tsconfig.tsbuildinfo +0 -1
  59. package/dist/types/tests/client/adapter-management.test.d.ts +0 -1
  60. package/dist/types/tests/client/appkit-core.test.d.ts +0 -1
  61. package/dist/types/tests/client/balance.test.d.ts +0 -1
  62. package/dist/types/tests/client/connection.test.d.ts +0 -1
  63. package/dist/types/tests/client/debug-mode.test.d.ts +0 -1
  64. package/dist/types/tests/client/estimate-gas.test.d.ts +0 -1
  65. package/dist/types/tests/client/initialization.test.d.ts +0 -1
  66. package/dist/types/tests/client/listeners.test.d.ts +0 -1
  67. package/dist/types/tests/client/public-methods.test.d.ts +0 -1
  68. package/dist/types/tests/client/universal-adapter.test.d.ts +0 -1
  69. package/dist/types/tests/client/walletconnect-events.test.d.ts +0 -1
  70. package/dist/types/tests/connectors/WalletConnectConnector.test.d.ts +0 -1
  71. package/dist/types/tests/library/vue.test.d.ts +0 -1
  72. package/dist/types/tests/mocks/Account.d.ts +0 -12
  73. package/dist/types/tests/mocks/Adapter.d.ts +0 -8
  74. package/dist/types/tests/mocks/AppKit.d.ts +0 -3
  75. package/dist/types/tests/mocks/LocalStorage.d.ts +0 -12
  76. package/dist/types/tests/mocks/Networks.d.ts +0 -4
  77. package/dist/types/tests/mocks/Options.d.ts +0 -6
  78. package/dist/types/tests/mocks/Providers.d.ts +0 -42
  79. package/dist/types/tests/mocks/UniversalProvider.d.ts +0 -3
  80. package/dist/types/tests/siwe.test.d.ts +0 -1
  81. package/dist/types/tests/test-utils.d.ts +0 -5
  82. package/dist/types/tests/universal-adapter.test.d.ts +0 -1
  83. package/dist/types/tests/utils/HelpersUtil.test.d.ts +0 -1
@@ -1,117 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { ConstantsUtil } from '@reown/appkit-common';
3
- import { ChainController } from '@reown/appkit-controllers';
4
- import { ProviderUtil } from '@reown/appkit-utils';
5
- import { AppKitBaseClient } from '../../src/client/appkit-base-client.js';
6
- import { mockEvmAdapter } from '../mocks/Adapter.js';
7
- import { mainnet } from '../mocks/Networks.js';
8
- import { mockOptions } from '../mocks/Options.js';
9
- import { mockBlockchainApiController, mockStorageUtil, mockWindowAndDocument } from '../test-utils.js';
10
- class TestAppKit extends AppKitBaseClient {
11
- async injectModalUi() { }
12
- async syncIdentity() { }
13
- // Expose protected connectionControllerClient for testing
14
- get testConnectionControllerClient() {
15
- return this.connectionControllerClient;
16
- }
17
- }
18
- describe('AppKit Gas Estimation', () => {
19
- let appKit;
20
- beforeEach(() => {
21
- vi.clearAllMocks();
22
- mockWindowAndDocument();
23
- mockStorageUtil();
24
- mockBlockchainApiController();
25
- // Mock ChainController.initialize before creating TestAppKit
26
- vi.spyOn(ChainController, 'initialize').mockImplementation(() => { });
27
- appKit = new TestAppKit(mockOptions);
28
- });
29
- it('should return estimated gas for EVM chain', async () => {
30
- const mockProvider = { provider: 'mock' };
31
- const mockGasEstimate = 21000n;
32
- vi.spyOn(ChainController, 'state', 'get').mockReturnValue({
33
- activeChain: ConstantsUtil.CHAIN.EVM,
34
- activeCaipNetwork: mainnet
35
- });
36
- vi.spyOn(ProviderUtil, 'getProvider').mockReturnValue(mockProvider);
37
- vi.spyOn(mockEvmAdapter, 'estimateGas').mockResolvedValue({ gas: mockGasEstimate });
38
- const transactionArgs = {
39
- chainNamespace: ConstantsUtil.CHAIN.EVM,
40
- address: '0x1234567890123456789012345678901234567890',
41
- to: '0x1234567890123456789012345678901234567890',
42
- data: '0x'
43
- };
44
- const result = await appKit.testConnectionControllerClient?.estimateGas(transactionArgs);
45
- expect(ProviderUtil.getProvider).toHaveBeenCalledWith(ConstantsUtil.CHAIN.EVM);
46
- expect(mockEvmAdapter.estimateGas).toHaveBeenCalledWith({
47
- ...transactionArgs,
48
- provider: mockProvider,
49
- caipNetwork: mainnet
50
- });
51
- expect(result).toBe(mockGasEstimate);
52
- });
53
- it('should return 0n for non-EVM chain', async () => {
54
- vi.spyOn(ChainController, 'state', 'get').mockReturnValue({
55
- activeChain: ConstantsUtil.CHAIN.SOLANA,
56
- activeCaipNetwork: { id: '1', chainNamespace: ConstantsUtil.CHAIN.SOLANA }
57
- });
58
- const transactionArgs = {
59
- chainNamespace: ConstantsUtil.CHAIN.SOLANA
60
- };
61
- const result = await appKit.testConnectionControllerClient?.estimateGas(transactionArgs);
62
- expect(mockEvmAdapter.estimateGas).not.toHaveBeenCalled();
63
- expect(result).toBe(0n);
64
- });
65
- it('should handle errors during gas estimation', async () => {
66
- const mockProvider = { provider: 'mock' };
67
- vi.spyOn(ChainController, 'state', 'get').mockReturnValue({
68
- activeChain: ConstantsUtil.CHAIN.EVM,
69
- activeCaipNetwork: mainnet
70
- });
71
- vi.spyOn(ProviderUtil, 'getProvider').mockReturnValue(mockProvider);
72
- vi.spyOn(mockEvmAdapter, 'estimateGas').mockRejectedValue(new Error('Gas estimation failed'));
73
- const transactionArgs = {
74
- chainNamespace: ConstantsUtil.CHAIN.EVM,
75
- address: '0x1234567890123456789012345678901234567890',
76
- to: '0x1234567890123456789012345678901234567890',
77
- data: '0x'
78
- };
79
- await expect(appKit.testConnectionControllerClient?.estimateGas(transactionArgs)).rejects.toThrow('Gas estimation failed');
80
- });
81
- it('should throw error when CaipNetwork is undefined', async () => {
82
- const mockProvider = { provider: 'mock' };
83
- // Mock the getCaipNetwork method to return undefined
84
- vi.spyOn(appKit, 'getCaipNetwork').mockReturnValue(undefined);
85
- vi.spyOn(ChainController, 'state', 'get').mockReturnValue({
86
- activeChain: ConstantsUtil.CHAIN.EVM,
87
- activeCaipNetwork: undefined
88
- });
89
- vi.spyOn(ProviderUtil, 'getProvider').mockReturnValue(mockProvider);
90
- vi.spyOn(mockEvmAdapter, 'estimateGas').mockReset();
91
- const transactionArgs = {
92
- chainNamespace: ConstantsUtil.CHAIN.EVM,
93
- address: '0x1234567890123456789012345678901234567890',
94
- to: '0x1234567890123456789012345678901234567890',
95
- data: '0x'
96
- };
97
- await expect(appKit.testConnectionControllerClient?.estimateGas(transactionArgs)).rejects.toThrow('CaipNetwork is undefined');
98
- });
99
- it('should handle missing adapter gracefully', async () => {
100
- const mockProvider = { provider: 'mock' };
101
- vi.spyOn(ChainController, 'state', 'get').mockReturnValue({
102
- activeChain: ConstantsUtil.CHAIN.EVM,
103
- activeCaipNetwork: mainnet
104
- });
105
- vi.spyOn(ProviderUtil, 'getProvider').mockReturnValue(mockProvider);
106
- vi.spyOn(mockEvmAdapter, 'estimateGas').mockResolvedValue(undefined);
107
- const transactionArgs = {
108
- chainNamespace: ConstantsUtil.CHAIN.EVM,
109
- address: '0x1234567890123456789012345678901234567890',
110
- to: '0x1234567890123456789012345678901234567890',
111
- data: '0x'
112
- };
113
- const result = await appKit.testConnectionControllerClient?.estimateGas(transactionArgs);
114
- expect(result).toBe(0n);
115
- });
116
- });
117
- //# sourceMappingURL=estimate-gas.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"estimate-gas.test.js","sourceRoot":"","sources":["../../../../tests/client/estimate-gas.test.ts"],"names":[],"mappings":"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"}
@@ -1,121 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import {} from '@reown/appkit-common';
3
- import { AlertController, ChainController, EventsController, OptionsController, StorageUtil } from '@reown/appkit-controllers';
4
- import { ErrorUtil } from '@reown/appkit-utils';
5
- import { AppKit } from '../../src/client/appkit.js';
6
- import { mainnet, polygon, sepolia, solana } from '../mocks/Networks';
7
- import { mockOptions } from '../mocks/Options';
8
- import { mockBlockchainApiController, mockStorageUtil, mockWindowAndDocument } from '../test-utils.js';
9
- describe('Base', () => {
10
- beforeEach(() => {
11
- mockWindowAndDocument();
12
- mockStorageUtil();
13
- mockBlockchainApiController();
14
- });
15
- describe('Base Initialization', () => {
16
- it('should initialize controllers', async () => {
17
- const sendEvent = vi.spyOn(EventsController, 'sendEvent');
18
- const initialize = vi.spyOn(ChainController, 'initialize');
19
- new AppKit(mockOptions);
20
- const options = { ...mockOptions };
21
- delete options.adapters;
22
- expect(sendEvent).toHaveBeenCalled();
23
- expect(sendEvent).toHaveBeenCalledWith({
24
- type: 'track',
25
- event: 'INITIALIZE',
26
- properties: {
27
- ...options,
28
- networks: options.networks.map((n) => n.id),
29
- siweConfig: {
30
- options: options.siweConfig?.options || {}
31
- }
32
- }
33
- });
34
- expect(initialize).toHaveBeenCalledOnce();
35
- expect(initialize).toHaveBeenCalledWith(mockOptions.adapters, [mainnet, sepolia, solana], {
36
- connectionControllerClient: expect.any(Object),
37
- networkControllerClient: expect.any(Object)
38
- });
39
- });
40
- it('should set EIP6963 enabled by default', () => {
41
- const setEIP6963Enabled = vi.spyOn(OptionsController, 'setEIP6963Enabled');
42
- new AppKit(mockOptions);
43
- expect(setEIP6963Enabled).toHaveBeenCalledWith(true);
44
- });
45
- it('should set EIP6963 disabled when option is disabled in config', () => {
46
- const setEIP6963Enabled = vi.spyOn(OptionsController, 'setEIP6963Enabled');
47
- new AppKit({
48
- ...mockOptions,
49
- enableEIP6963: false
50
- });
51
- expect(setEIP6963Enabled).toHaveBeenCalledWith(false);
52
- });
53
- it('should set partially defaultAccountType', () => {
54
- const setDefaultAccountTypes = vi.spyOn(OptionsController, 'setDefaultAccountTypes');
55
- new AppKit({
56
- ...mockOptions,
57
- defaultAccountTypes: {
58
- eip155: 'eoa',
59
- bip122: 'ordinal'
60
- }
61
- });
62
- expect(setDefaultAccountTypes).toHaveBeenCalledWith({
63
- eip155: 'eoa',
64
- bip122: 'ordinal'
65
- });
66
- });
67
- it('should use default network prop when defaultNetwork prop is not included in the networks array', () => {
68
- vi.spyOn(StorageUtil, 'getActiveCaipNetworkId').mockReturnValueOnce(undefined);
69
- const setActiveCaipNetwork = vi.spyOn(ChainController, 'setActiveCaipNetwork');
70
- new AppKit({
71
- ...mockOptions,
72
- defaultNetwork: polygon
73
- });
74
- expect(setActiveCaipNetwork).toHaveBeenCalledWith(mainnet);
75
- });
76
- it('should use default network prop when there is no network in storage', () => {
77
- vi.spyOn(StorageUtil, 'getActiveCaipNetworkId').mockReturnValueOnce(undefined);
78
- const setActiveCaipNetwork = vi.spyOn(ChainController, 'setActiveCaipNetwork');
79
- new AppKit({
80
- ...mockOptions,
81
- defaultNetwork: sepolia
82
- });
83
- expect(setActiveCaipNetwork).toHaveBeenCalledWith(sepolia);
84
- });
85
- it('should not use default network prop when there is a network in storage', () => {
86
- vi.spyOn(StorageUtil, 'getActiveCaipNetworkId').mockReturnValueOnce(sepolia.caipNetworkId);
87
- const setActiveCaipNetwork = vi.spyOn(ChainController, 'setActiveCaipNetwork');
88
- new AppKit({
89
- ...mockOptions,
90
- defaultNetwork: polygon
91
- });
92
- expect(setActiveCaipNetwork).toHaveBeenCalledWith(sepolia);
93
- });
94
- });
95
- describe('Alert Errors', () => {
96
- it('should handle alert errors based on error messages', () => {
97
- const open = vi.spyOn(AlertController, 'open');
98
- const errors = [
99
- {
100
- alert: ErrorUtil.ALERT_ERRORS.INVALID_APP_CONFIGURATION,
101
- message: 'Error: WebSocket connection closed abnormally with code: 3000 (Unauthorized: origin not allowed)'
102
- },
103
- {
104
- alert: ErrorUtil.ALERT_ERRORS.JWT_TOKEN_NOT_VALID,
105
- message: 'WebSocket connection closed abnormally with code: 3000 (JWT validation error: JWT Token is not yet valid:)'
106
- },
107
- {
108
- alert: ErrorUtil.ALERT_ERRORS.INVALID_PROJECT_ID,
109
- message: 'Uncaught Error: WebSocket connection closed abnormally with code: 3000 (Unauthorized: invalid key)'
110
- }
111
- ];
112
- const appKit = new AppKit(mockOptions);
113
- for (const { alert, message } of errors) {
114
- // @ts-expect-error
115
- appKit.handleAlertError(new Error(message));
116
- expect(open).toHaveBeenCalledWith(alert, 'error');
117
- }
118
- });
119
- });
120
- });
121
- //# sourceMappingURL=initialization.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"initialization.test.js","sourceRoot":"","sources":["../../../../tests/client/initialization.test.ts"],"names":[],"mappings":"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"}
@@ -1,130 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { AccountController, BlockchainApiController, ChainController, ConnectionController, OptionsController } from '@reown/appkit-controllers';
3
- import { AppKit } from '../../src/client/appkit.js';
4
- import { emitter, mockEvmAdapter, solanaEmitter } from '../mocks/Adapter';
5
- import { mainnet, solana, unsupportedNetwork } from '../mocks/Networks';
6
- import { mockOptions } from '../mocks/Options';
7
- import { mockAuthProvider } from '../mocks/Providers.js';
8
- import { mockBlockchainApiController, mockStorageUtil, mockWindowAndDocument } from '../test-utils.js';
9
- describe('Listeners', () => {
10
- beforeEach(() => {
11
- vi.clearAllMocks();
12
- emitter.clearAll();
13
- solanaEmitter.clearAll();
14
- mockWindowAndDocument();
15
- mockStorageUtil();
16
- mockBlockchainApiController();
17
- });
18
- it('should set caip address, profile name and profile image on accountChanged event', async () => {
19
- const identity = { name: 'vitalik.eth', avatar: null };
20
- const setCaipAddressSpy = vi.spyOn(AccountController, 'setCaipAddress');
21
- const fetchIdentitySpy = vi
22
- .spyOn(BlockchainApiController, 'fetchIdentity')
23
- .mockResolvedValueOnce(identity);
24
- const mockAccount = {
25
- address: '0x123',
26
- chainId: mainnet.id,
27
- chainNamespace: mainnet.chainNamespace
28
- };
29
- const appKit = new AppKit(mockOptions);
30
- const setProfileNameSpy = vi.spyOn(appKit, 'setProfileName').mockImplementation(() => { });
31
- const setProfileImageSpy = vi.spyOn(appKit, 'setProfileImage').mockImplementation(() => { });
32
- await appKit['syncAccount'](mockAccount);
33
- // @ts-expect-error private event
34
- mockEvmAdapter.emit('accountChanged', mockAccount);
35
- expect(setCaipAddressSpy).toHaveBeenCalledWith(`${mockAccount.chainNamespace}:${mockAccount.chainId}:${mockAccount.address}`, 'eip155');
36
- expect(fetchIdentitySpy).toHaveBeenCalledWith({
37
- address: mockAccount.address,
38
- caipNetworkId: `${mockAccount.chainNamespace}:${mockAccount.chainId}`
39
- });
40
- expect(setProfileNameSpy).toHaveBeenCalledWith(identity.name, 'eip155');
41
- expect(setProfileImageSpy).toHaveBeenCalledWith(identity.avatar, 'eip155');
42
- });
43
- it('should call syncAccountInfo when namespace is different than active namespace', async () => {
44
- vi.spyOn(AccountController, 'state', 'get').mockReturnValue({
45
- ...AccountController.state,
46
- address: '0x1234'
47
- });
48
- const appKit = new AppKit({ ...mockOptions, defaultNetwork: solana });
49
- const setCaipAddressSpy = vi.spyOn(appKit, 'setCaipAddress');
50
- const mockAccount = {
51
- address: '0x123',
52
- chainId: mainnet.id,
53
- chainNamespace: mainnet.chainNamespace
54
- };
55
- emitter.emit('accountChanged', mockAccount);
56
- expect(setCaipAddressSpy).toHaveBeenCalledWith(`${mockAccount.chainNamespace}:${mockAccount.chainId}:${mockAccount.address}`, 'eip155');
57
- });
58
- it('should reset profile info if switched namespace is not EVM', async () => {
59
- const appKit = new AppKit({ ...mockOptions, defaultNetwork: mainnet });
60
- const setProfileNameSpy = vi.spyOn(appKit, 'setProfileName');
61
- const setProfileImageSpy = vi.spyOn(appKit, 'setProfileImage');
62
- const mockAccount = {
63
- address: 'C3k5AvYqoXjsfrkXdFBkUhqHHApeC8amP7y85LkLHL5X',
64
- chainId: solana.id,
65
- chainNamespace: solana.chainNamespace
66
- };
67
- solanaEmitter.emit('accountChanged', mockAccount);
68
- expect(setProfileNameSpy).toHaveBeenCalledWith(null, solana.chainNamespace);
69
- expect(setProfileImageSpy).toHaveBeenCalledWith(null, solana.chainNamespace);
70
- });
71
- it('should show unsupported chain UI when network is unsupported and allowUnsupportedChain is false', async () => {
72
- const showUnsupportedChainUISpy = vi.spyOn(ChainController, 'showUnsupportedChainUI');
73
- const appKit = new AppKit({
74
- ...mockOptions,
75
- allowUnsupportedChain: false,
76
- features: { email: false, socials: [] }
77
- });
78
- ChainController.state.activeChain = mainnet.chainNamespace;
79
- ChainController.state.activeCaipNetwork = unsupportedNetwork;
80
- await appKit['syncAccount']({
81
- address: '0x123',
82
- chainId: unsupportedNetwork.id,
83
- chainNamespace: unsupportedNetwork.chainNamespace
84
- });
85
- expect(showUnsupportedChainUISpy).toHaveBeenCalled();
86
- });
87
- it('should handle preferred account type switching on auth provider connect', async () => {
88
- vi.spyOn(OptionsController.state, 'defaultAccountTypes', 'get').mockReturnValue({
89
- ...OptionsController.state.defaultAccountTypes,
90
- eip155: 'smartAccount'
91
- });
92
- vi.spyOn(mockAuthProvider, 'onConnect').mockImplementation(cb => {
93
- cb({
94
- address: '0x123',
95
- chainId: '1',
96
- email: 'test@example.com',
97
- preferredAccountType: 'eoa'
98
- });
99
- });
100
- const setPreferredAccountTypeSpy = vi
101
- .spyOn(ConnectionController, 'setPreferredAccountType')
102
- .mockResolvedValue(undefined);
103
- const appKit = new AppKit(mockOptions);
104
- appKit['setupAuthConnectorListeners'](mockAuthProvider);
105
- expect(setPreferredAccountTypeSpy).toHaveBeenCalledWith('smartAccount');
106
- expect(appKit['hasSwitchedToPreferredAccountTypeOnConnect']).toBe(true);
107
- });
108
- it('should not switch preferred account type if types match', async () => {
109
- vi.spyOn(OptionsController.state, 'defaultAccountTypes', 'get').mockReturnValue({
110
- ...OptionsController.state.defaultAccountTypes,
111
- eip155: 'smartAccount'
112
- });
113
- vi.spyOn(mockAuthProvider, 'onConnect').mockImplementation(cb => {
114
- cb({
115
- address: '0x123',
116
- chainId: '1',
117
- email: 'test@example.com',
118
- preferredAccountType: 'smartAccount'
119
- });
120
- });
121
- const setPreferredAccountTypeSpy = vi
122
- .spyOn(ConnectionController, 'setPreferredAccountType')
123
- .mockResolvedValue(undefined);
124
- const appKit = new AppKit(mockOptions);
125
- appKit['setupAuthConnectorListeners'](mockAuthProvider);
126
- expect(setPreferredAccountTypeSpy).not.toHaveBeenCalledWith('smartAccount');
127
- expect(appKit['hasSwitchedToPreferredAccountTypeOnConnect']).toBe(true);
128
- });
129
- });
130
- //# sourceMappingURL=listeners.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"listeners.test.js","sourceRoot":"","sources":["../../../../tests/client/listeners.test.ts"],"names":[],"mappings":"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"}