From ac44b235ad3f34dee36df994cce86c464f38e049 Mon Sep 17 00:00:00 2001 From: Usame Algan Date: Tue, 31 Oct 2023 12:32:43 +0100 Subject: [PATCH 1/2] fix: Only continue to safe creation if login succeeds --- src/components/welcome/WelcomeLogin/WalletLogin.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/welcome/WelcomeLogin/WalletLogin.tsx b/src/components/welcome/WelcomeLogin/WalletLogin.tsx index a02d570df8..54242c585f 100644 --- a/src/components/welcome/WelcomeLogin/WalletLogin.tsx +++ b/src/components/welcome/WelcomeLogin/WalletLogin.tsx @@ -12,7 +12,8 @@ const WalletLogin = ({ onLogin }: { onLogin: () => void }) => { const login = async () => { const walletState = await connectWallet() - if (walletState) { + + if (walletState && walletState.length > 0) { onLogin() } } From 05f761036b92cd94adaa853685c8f2efabfbcab4 Mon Sep 17 00:00:00 2001 From: Usame Algan Date: Tue, 31 Oct 2023 14:11:33 +0100 Subject: [PATCH 2/2] fix: Add new test case --- .../__tests__/WalletLogin.test.tsx | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/components/welcome/WelcomeLogin/__tests__/WalletLogin.test.tsx b/src/components/welcome/WelcomeLogin/__tests__/WalletLogin.test.tsx index a846dd5f8d..2f28d230f1 100644 --- a/src/components/welcome/WelcomeLogin/__tests__/WalletLogin.test.tsx +++ b/src/components/welcome/WelcomeLogin/__tests__/WalletLogin.test.tsx @@ -68,4 +68,27 @@ describe('WalletLogin', () => { expect(mockOnLogin).toHaveBeenCalled() }) }) + + it('should not invoke the callback if connection fails', async () => { + const mockOnLogin = jest.fn() + jest.spyOn(useConnectWallet, 'default').mockReturnValue(jest.fn().mockReturnValue([])) + + const result = render() + + await waitFor(() => { + expect(result.findByText('Connect wallet')).resolves.toBeDefined() + }) + + // We do not automatically invoke the callback as the user did not actively connect + expect(mockOnLogin).not.toHaveBeenCalled() + + act(() => { + const button = result.getByRole('button') + button.click() + }) + + await waitFor(() => { + expect(mockOnLogin).not.toHaveBeenCalled() + }) + }) })