From 569daf33e250e1933e53c12e9cee9383873601d0 Mon Sep 17 00:00:00 2001 From: Frank Niessink Date: Sun, 9 Jul 2023 22:10:38 +0200 Subject: [PATCH] Increase test coverage. --- .../src/header_footer/Menubar.test.js | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/components/frontend/src/header_footer/Menubar.test.js b/components/frontend/src/header_footer/Menubar.test.js index 2cba4647b3..35f22368de 100644 --- a/components/frontend/src/header_footer/Menubar.test.js +++ b/components/frontend/src/header_footer/Menubar.test.js @@ -19,6 +19,32 @@ it('logs in', async () => { expect(set_user).toHaveBeenCalledWith("user@example.org", "user@example.org", expected_date) }); +it('shows invalid credential message', async () => { + auth.login = jest.fn().mockResolvedValue({ ok: false }); + const set_user = jest.fn(); + render( {/* Dummy handler */ }} user={null} set_user={set_user} />); + fireEvent.click(screen.getByText(/Login/)); + fireEvent.change(screen.getByLabelText("Username"), { target: { value: 'user@example.org' } }) + fireEvent.change(screen.getByLabelText("Password"), { target: { value: 'secret' } }) + await act(async () => fireEvent.click(screen.getByText(/Submit/))); + expect(screen.getAllByText(/Invalid credentials/).length).toBe(1); + expect(auth.login).toHaveBeenCalledWith("user@example.org", "secret") + expect(set_user).not.toHaveBeenCalled() +}); + +it('shows connection error message', async () => { + auth.login = jest.fn().mockRejectedValue(new Error('Async error message')); + const set_user = jest.fn(); + render( {/* Dummy handler */ }} user={null} set_user={set_user} />); + fireEvent.click(screen.getByText(/Login/)); + fireEvent.change(screen.getByLabelText("Username"), { target: { value: 'user@example.org' } }) + fireEvent.change(screen.getByLabelText("Password"), { target: { value: 'secret' } }) + await act(async () => fireEvent.click(screen.getByText(/Submit/))); + expect(screen.getAllByText(/Connection error/).length).toBe(1); + expect(auth.login).toHaveBeenCalledWith("user@example.org", "secret") + expect(set_user).not.toHaveBeenCalled() +}); + it('logs out', async () => { auth.logout = jest.fn().mockResolvedValue({ ok: true }); const set_user = jest.fn();