UNPKG

@reown/appkit-scaffold-ui

Version:

The full stack toolkit to build onchain app UX.

65 lines 2.71 kB
import { fixture } from '@open-wc/testing'; import { afterEach, beforeAll, describe, expect, it, vi } from 'vitest'; import { html } from 'lit'; import { ChainController, ConnectionController, ConnectorController, CoreHelperUtil, EventsController, RouterController } from '@reown/appkit-controllers'; const WALLET = { name: 'MetaMask', rdns: 'metamask.io' }; const CONNECTOR = { type: 'ANNOUNCED', name: 'MetaMask', chain: 'eip155', info: { rdns: 'metamask.io' } }; describe('W3mConnectingWcBrowser', () => { beforeAll(() => { Element.prototype.animate = vi.fn(); vi.spyOn(CoreHelperUtil, 'isMobile').mockReturnValue(false); vi.spyOn(ChainController, 'getActiveCaipNetwork').mockReturnValue({ caipNetworkId: 'eip155:1' }); }); afterEach(() => { vi.clearAllMocks(); }); it('it should send SELECT_WALLET event when constructor is called', async () => { vi.spyOn(RouterController, 'state', 'get').mockReturnValue({ ...RouterController.state, data: { wallet: WALLET } }); vi.spyOn(EventsController, 'sendEvent'); await fixture(html `<w3m-connecting-wc-browser></w3m-connecting-wc-browser>`); expect(EventsController.sendEvent).toHaveBeenCalledWith({ type: 'track', event: 'SELECT_WALLET', properties: { name: WALLET.name, platform: 'browser' } }); }); it('it should connect successfully if a connector exist', async () => { vi.spyOn(ConnectionController, 'connectExternal'); vi.spyOn(EventsController, 'sendEvent'); vi.spyOn(ConnectorController, 'state', 'get').mockReturnValue({ ...ConnectorController.state, connectors: [CONNECTOR] }); await fixture(html `<w3m-connecting-wc-browser></w3m-connecting-wc-browser>`); expect(ConnectionController.connectExternal).toHaveBeenCalledWith(CONNECTOR, CONNECTOR.chain); }); it('it should throw an error if trying to connect when a connector does not exist', async () => { vi.spyOn(EventsController, 'sendEvent'); vi.spyOn(ConnectorController, 'state', 'get').mockReturnValue({ ...ConnectorController.state, connectors: [] }); await fixture(html `<w3m-connecting-wc-browser></w3m-connecting-wc-browser>`); expect(EventsController.sendEvent).toHaveBeenCalledWith({ type: 'track', event: 'CONNECT_ERROR', properties: { message: 'w3m-connecting-wc-browser: No connector found' } }); }); }); //# sourceMappingURL=w3m-connecting-wc-browser.test.js.map