import { fireEvent, render, screen } from '@testing-library/react'; import { VegaWalletContext } from '@vegaprotocol/wallet'; import type { VegaWalletContextShape } from '@vegaprotocol/wallet'; import { VegaWalletConnectButton } from './vega-wallet-connect-button'; import { truncateByChars } from '@vegaprotocol/react-helpers'; const mockUpdateDialogOpen = jest.fn(); jest.mock('@vegaprotocol/wallet', () => ({ ...jest.requireActual('@vegaprotocol/wallet'), useVegaWalletDialogStore: () => ({ openVegaWalletDialog: mockUpdateDialogOpen, }), })); beforeEach(() => { jest.clearAllMocks(); }); const generateJsx = (context: VegaWalletContextShape) => { return ( ); }; it('Not connected', () => { render(generateJsx({ pubKey: null } as VegaWalletContextShape)); const button = screen.getByRole('button'); expect(button).toHaveTextContent('Connect Vega wallet'); fireEvent.click(button); expect(mockUpdateDialogOpen).toHaveBeenCalled(); }); it('Connected', () => { const pubKey = { publicKey: '123456__123456', name: 'test' }; render( generateJsx({ pubKey: pubKey.publicKey, pubKeys: [pubKey], } as VegaWalletContextShape) ); const button = screen.getByRole('button'); expect(button).toHaveTextContent(truncateByChars(pubKey.publicKey)); fireEvent.click(button); expect(mockUpdateDialogOpen).not.toHaveBeenCalled(); });