diff --git a/jsx/src/components/AddUser/AddUser.test.js b/jsx/src/components/AddUser/AddUser.test.js index b36e7b13..77b1b17f 100644 --- a/jsx/src/components/AddUser/AddUser.test.js +++ b/jsx/src/components/AddUser/AddUser.test.js @@ -1,16 +1,16 @@ import React from "react"; import "@testing-library/jest-dom"; import { act } from "react-dom/test-utils"; -import { render, screen, fireEvent } from '@testing-library/react' -import userEvent from '@testing-library/user-event' +import { render, screen, fireEvent } from "@testing-library/react"; +import userEvent from "@testing-library/user-event"; import { Provider, useDispatch, useSelector } from "react-redux"; import { createStore } from "redux"; import { HashRouter } from "react-router-dom"; - -import AddUser from "./AddUser"; // eslint-disable-next-line import regeneratorRuntime from 'regenerator-runtime' +import AddUser from "./AddUser"; + jest.mock("react-redux", () => ({ ...jest.requireActual("react-redux"), useDispatch: jest.fn(), @@ -18,11 +18,7 @@ jest.mock("react-redux", () => ({ })); var mockAsync = (result) => - jest - .fn() - .mockImplementation(() => - Promise.resolve(result) - ); + jest.fn().mockImplementation(() => Promise.resolve(result)); var mockAsyncRejection = () => jest.fn().mockImplementation(() => Promise.reject()); @@ -59,25 +55,25 @@ afterEach(() => { test("Renders", async () => { await act(async () => { - render(addUserJsx()) - }) - expect(screen.getByTestId("container")).toBeVisible() + render(addUserJsx()); + }); + expect(screen.getByTestId("container")).toBeVisible(); }); test("Removes users when they fail Regex", async () => { let callbackSpy = mockAsync(); await act(async () => { - render(addUserJsx(callbackSpy)) - }) + render(addUserJsx(callbackSpy)); + }); - let textarea = screen.getByTestId("user-textarea") - let submit = screen.getByTestId("submit") + let textarea = screen.getByTestId("user-textarea"); + let submit = screen.getByTestId("submit"); - fireEvent.blur(textarea, { target: { value: "foo\nbar\n!!*&*" }}) + fireEvent.blur(textarea, { target: { value: "foo\nbar\n!!*&*" } }); await act(async () => { - fireEvent.click(submit) - }) + fireEvent.click(submit); + }); expect(callbackSpy).toHaveBeenCalledWith(["foo", "bar"], false); }); @@ -86,18 +82,18 @@ test("Correctly submits admin", async () => { let callbackSpy = mockAsync(); await act(async () => { - render(addUserJsx(callbackSpy)) - }) + render(addUserJsx(callbackSpy)); + }); - let textarea = screen.getByTestId("user-textarea") - let submit = screen.getByTestId("submit") - let check = screen.getByTestId("check") + let textarea = screen.getByTestId("user-textarea"); + let submit = screen.getByTestId("submit"); + let check = screen.getByTestId("check"); - userEvent.click(check) - fireEvent.blur(textarea, { target: { value: "foo" }}) + userEvent.click(check); + fireEvent.blur(textarea, { target: { value: "foo" } }); await act(async () => { - fireEvent.click(submit) - }) + fireEvent.click(submit); + }); expect(callbackSpy).toHaveBeenCalledWith(["foo"], true); }); @@ -106,36 +102,38 @@ test("Shows a UI error dialogue when user creation fails", async () => { let callbackSpy = mockAsyncRejection(); await act(async () => { - render(addUserJsx(callbackSpy)) - }) + render(addUserJsx(callbackSpy)); + }); - let submit = screen.getByTestId("submit") + let submit = screen.getByTestId("submit"); await act(async () => { - fireEvent.click(submit) - }) + fireEvent.click(submit); + }); - let errorDialog = screen.getByText("Failed to create user.") + let errorDialog = screen.getByText("Failed to create user."); - expect(errorDialog).toBeVisible() + expect(errorDialog).toBeVisible(); expect(callbackSpy).toHaveBeenCalled(); }); test("Shows a more specific UI error dialogue when user creation returns an improper status code", async () => { - let callbackSpy = mockAsync({status: 409}); + let callbackSpy = mockAsync({ status: 409 }); await act(async () => { - render(addUserJsx(callbackSpy)) - }) + render(addUserJsx(callbackSpy)); + }); - let submit = screen.getByTestId("submit") + let submit = screen.getByTestId("submit"); await act(async () => { - fireEvent.click(submit) - }) + fireEvent.click(submit); + }); - let errorDialog = screen.getByText("Failed to create user. User already exists.") + let errorDialog = screen.getByText( + "Failed to create user. User already exists." + ); - expect(errorDialog).toBeVisible() + expect(errorDialog).toBeVisible(); expect(callbackSpy).toHaveBeenCalled(); }); diff --git a/jsx/src/components/CreateGroup/CreateGroup.jsx b/jsx/src/components/CreateGroup/CreateGroup.jsx index e873410e..181503b0 100644 --- a/jsx/src/components/CreateGroup/CreateGroup.jsx +++ b/jsx/src/components/CreateGroup/CreateGroup.jsx @@ -24,7 +24,7 @@ const CreateGroup = (props) => { return ( <> -
+
{errorAlert != null ? (
@@ -53,6 +53,7 @@ const CreateGroup = (props) => {
{