userEvent is async now

This commit is contained in:
Min RK
2024-08-27 14:52:02 +02:00
parent 5616ade51d
commit e8b2bd82c8
7 changed files with 54 additions and 52 deletions

View File

@@ -67,7 +67,7 @@ test("Removes users when they fail Regex", async () => {
fireEvent.blur(textarea, { target: { value: "foo \n bar\na@b.co\n \n\n" } });
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
expect(callbackSpy).toHaveBeenCalledWith(["foo", "bar", "a@b.co"], false);
@@ -84,10 +84,10 @@ test("Correctly submits admin", async () => {
let submit = screen.getByTestId("submit");
let check = screen.getByTestId("check");
userEvent.click(check);
await userEvent.click(check);
fireEvent.blur(textarea, { target: { value: "foo" } });
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
expect(callbackSpy).toHaveBeenCalledWith(["foo"], true);
@@ -103,7 +103,7 @@ test("Shows a UI error dialogue when user creation fails", async () => {
let submit = screen.getByTestId("submit");
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
let errorDialog = screen.getByText("Failed to create user.");
@@ -122,7 +122,7 @@ test("Shows a more specific UI error dialogue when user creation returns an impr
let submit = screen.getByTestId("submit");
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
let errorDialog = screen.getByText(

View File

@@ -63,9 +63,10 @@ test("Calls createGroup on submit", async () => {
let input = screen.getByTestId("group-input");
let submit = screen.getByTestId("submit");
const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTime });
userEvent.type(input, "groupname");
await act(async () => fireEvent.click(submit));
await user.type(input, "groupname");
await act(async () => await fireEvent.click(submit));
expect(callbackSpy).toHaveBeenNthCalledWith(1, "groupname");
});
@@ -80,7 +81,7 @@ test("Shows a UI error dialogue when group creation fails", async () => {
let submit = screen.getByTestId("submit");
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
let errorDialog = screen.getByText("Failed to create group.");
@@ -99,7 +100,7 @@ test("Shows a more specific UI error dialogue when user creation returns an impr
let submit = screen.getByTestId("submit");
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
let errorDialog = screen.getByText(

View File

@@ -80,7 +80,7 @@ test("Calls the delete user function when the button is pressed", async () => {
let deleteUser = screen.getByTestId("delete-user");
await act(async () => {
fireEvent.click(deleteUser);
await fireEvent.click(deleteUser);
});
expect(callbackSpy).toHaveBeenCalled();
@@ -95,7 +95,7 @@ test("Submits the edits when the button is pressed", async () => {
let submit = screen.getByTestId("submit");
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
expect(callbackSpy).toHaveBeenCalled();
@@ -113,7 +113,7 @@ test("Shows a UI error dialogue when user edit fails", async () => {
fireEvent.blur(usernameInput, { target: { value: "whatever" } });
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
let errorDialog = screen.getByText("Failed to edit user.");
@@ -134,7 +134,7 @@ test("Shows a UI error dialogue when user edit returns an improper status code",
fireEvent.blur(usernameInput, { target: { value: "whatever" } });
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
let errorDialog = screen.getByText("Failed to edit user.");

View File

@@ -80,13 +80,13 @@ test("Adds user from input to user selectables on button click", async () => {
let input = screen.getByTestId("username-input");
let validateUser = screen.getByTestId("validate-user");
let submit = screen.getByTestId("submit");
userEvent.type(input, "bar");
fireEvent.click(validateUser);
const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTime });
await user.type(input, "bar");
await fireEvent.click(validateUser);
await act(async () => okPacket);
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
expect(callbackSpy).toHaveBeenNthCalledWith(1, ["bar"], "group");
@@ -100,7 +100,7 @@ test("Removes a user recently added from input from the selectables list", async
});
let selectedUser = screen.getByText("foo");
fireEvent.click(selectedUser);
await await fireEvent.click(selectedUser);
let unselectedUser = screen.getByText("foo");
@@ -117,14 +117,14 @@ test("Grays out a user, already in the group, when unselected and calls deleteUs
let submit = screen.getByTestId("submit");
let groupUser = screen.getByText("foo");
fireEvent.click(groupUser);
await fireEvent.click(groupUser);
let unselectedUser = screen.getByText("foo");
expect(unselectedUser.className).toBe("item unselected");
// test deleteUser call
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
expect(callbackSpy).toHaveBeenNthCalledWith(1, ["foo"], "group");
@@ -140,7 +140,7 @@ test("Calls deleteGroup on button click", async () => {
let deleteGroup = screen.getByTestId("delete-group");
await act(async () => {
fireEvent.click(deleteGroup);
await fireEvent.click(deleteGroup);
});
expect(callbackSpy).toHaveBeenNthCalledWith(1, "group");
@@ -154,12 +154,12 @@ test("Shows a UI error dialogue when group edit fails", async () => {
});
let groupUser = screen.getByText("foo");
fireEvent.click(groupUser);
await fireEvent.click(groupUser);
let submit = screen.getByTestId("submit");
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
let errorDialog = screen.getByText("Failed to edit group.");
@@ -176,12 +176,12 @@ test("Shows a UI error dialogue when group edit returns an improper status code"
});
let groupUser = screen.getByText("foo");
fireEvent.click(groupUser);
await fireEvent.click(groupUser);
let submit = screen.getByTestId("submit");
await act(async () => {
fireEvent.click(submit);
await fireEvent.click(submit);
});
let errorDialog = screen.getByText("Failed to edit group.");
@@ -200,7 +200,7 @@ test("Shows a UI error dialogue when group delete fails", async () => {
let deleteGroup = screen.getByTestId("delete-group");
await act(async () => {
fireEvent.click(deleteGroup);
await fireEvent.click(deleteGroup);
});
let errorDialog = screen.getByText("Failed to delete group.");
@@ -219,7 +219,7 @@ test("Shows a UI error dialogue when group delete returns an improper status cod
let deleteGroup = screen.getByTestId("delete-group");
await act(async () => {
fireEvent.click(deleteGroup);
await fireEvent.click(deleteGroup);
});
let errorDialog = screen.getByText("Failed to delete group.");

View File

@@ -138,7 +138,7 @@ test("Interacting with PaginationFooter causes page refresh", async () => {
let next = screen.getByTestId("paginate-next");
await act(async () => {
fireEvent.click(next);
await fireEvent.click(next);
});
expect(updateGroupsSpy).toBeCalledWith(2, 2);
// mocked updateGroups means callback after load doesn't fire

View File

@@ -453,7 +453,7 @@ const ServerDashboard = (props) => {
setStateFilter(event.target.checked ? "active" : null);
}}
/>
<Form.Check.Label for="active-servers-filter">
<Form.Check.Label htmlFor="active-servers-filter">
{"only active servers"}
</Form.Check.Label>
</Form.Check>

View File

@@ -291,7 +291,7 @@ test("Invokes the startServer event on button click", async () => {
expect(start_elems.length).toBe(Object.keys(bar_servers).length);
await act(async () => {
fireEvent.click(start_elems[0]);
await fireEvent.click(start_elems[0]);
});
expect(callbackSpy).toHaveBeenCalled();
@@ -307,7 +307,7 @@ test("Invokes the stopServer event on button click", async () => {
let stop = screen.getByText("Stop Server");
await act(async () => {
fireEvent.click(stop);
await fireEvent.click(stop);
});
expect(callbackSpy).toHaveBeenCalled();
@@ -323,7 +323,7 @@ test("Invokes the shutdownHub event on button click", async () => {
let shutdown = screen.getByText("Shutdown Hub");
await act(async () => {
fireEvent.click(shutdown);
await fireEvent.click(shutdown);
});
expect(callbackSpy).toHaveBeenCalled();
@@ -338,7 +338,7 @@ test("Sorts according to username", async () => {
expect(searchParams.get("sort")).toEqual(null);
let handler = screen.getByTestId(testId);
fireEvent.click(handler);
await fireEvent.click(handler);
expect(searchParams.get("sort")).toEqual("name");
await act(async () => {
@@ -346,7 +346,7 @@ test("Sorts according to username", async () => {
handler = screen.getByTestId(testId);
});
fireEvent.click(handler);
await fireEvent.click(handler);
expect(searchParams.get("sort")).toEqual("-name");
await act(async () => {
@@ -354,7 +354,7 @@ test("Sorts according to username", async () => {
handler = screen.getByTestId(testId);
});
fireEvent.click(handler);
await fireEvent.click(handler);
expect(searchParams.get("sort")).toEqual("name");
});
@@ -367,7 +367,7 @@ test("Sorts according to last activity", async () => {
expect(searchParams.get("sort")).toEqual(null);
let handler = screen.getByTestId(testId);
fireEvent.click(handler);
await fireEvent.click(handler);
expect(searchParams.get("sort")).toEqual("last_activity");
await act(async () => {
@@ -375,7 +375,7 @@ test("Sorts according to last activity", async () => {
handler = screen.getByTestId(testId);
});
fireEvent.click(handler);
await fireEvent.click(handler);
expect(searchParams.get("sort")).toEqual("-last_activity");
await act(async () => {
@@ -383,7 +383,7 @@ test("Sorts according to last activity", async () => {
handler = screen.getByTestId(testId);
});
fireEvent.click(handler);
await fireEvent.click(handler);
expect(searchParams.get("sort")).toEqual("last_activity");
});
@@ -397,7 +397,7 @@ test("Filter according to server status (running/not running)", async () => {
const label = "only active servers";
let handler = screen.getByLabelText(label);
expect(handler.checked).toEqual(false);
fireEvent.click(handler);
await fireEvent.click(handler);
// FIXME: need to force a rerender to get updated checkbox
// I don't think this should be required
@@ -408,7 +408,7 @@ test("Filter according to server status (running/not running)", async () => {
expect(searchParams.get("state")).toEqual("active");
expect(handler.checked).toEqual(true);
fireEvent.click(handler);
await fireEvent.click(handler);
await act(async () => {
rerender(serverDashboardJsx());
@@ -433,7 +433,7 @@ test("Shows server details with button click", async () => {
expect(collapseBar).not.toHaveClass("show");
await act(async () => {
fireEvent.click(button);
await fireEvent.click(button);
jest.runAllTimers();
});
@@ -441,7 +441,7 @@ test("Shows server details with button click", async () => {
expect(collapseBar).not.toHaveClass("show");
await act(async () => {
fireEvent.click(button);
await fireEvent.click(button);
jest.runAllTimers();
});
@@ -450,7 +450,7 @@ test("Shows server details with button click", async () => {
expect(collapseBar).not.toHaveClass("show");
await act(async () => {
fireEvent.click(button);
await fireEvent.click(button);
jest.runAllTimers();
});
@@ -480,7 +480,7 @@ test("Shows a UI error dialogue when start all servers fails", async () => {
let startAll = screen.getByTestId("start-all");
await act(async () => {
fireEvent.click(startAll);
await fireEvent.click(startAll);
});
let errorDialog = screen.getByText("Failed to start servers.");
@@ -496,7 +496,7 @@ test("Shows a UI error dialogue when stop all servers fails", async () => {
let stopAll = screen.getByTestId("stop-all");
await act(async () => {
fireEvent.click(stopAll);
await fireEvent.click(stopAll);
});
let errorDialog = screen.getByText("Failed to stop servers.");
@@ -513,7 +513,7 @@ test("Shows a UI error dialogue when start user server fails", async () => {
expect(start_elems.length).toBe(Object.keys(bar_servers).length);
await act(async () => {
fireEvent.click(start_elems[0]);
await fireEvent.click(start_elems[0]);
});
let errorDialog = screen.getByText("Failed to start server.");
@@ -531,7 +531,7 @@ test("Shows a UI error dialogue when start user server returns an improper statu
expect(start_elems.length).toBe(Object.keys(bar_servers).length);
await act(async () => {
fireEvent.click(start_elems[0]);
await fireEvent.click(start_elems[0]);
});
let errorDialog = screen.getByText("Failed to start server.");
@@ -550,7 +550,7 @@ test("Shows a UI error dialogue when stop user servers fails", async () => {
let stop = screen.getByText("Stop Server");
await act(async () => {
fireEvent.click(stop);
await fireEvent.click(stop);
});
let errorDialog = screen.getByText("Failed to stop server.");
@@ -569,7 +569,7 @@ test("Shows a UI error dialogue when stop user server returns an improper status
let stop = screen.getByText("Stop Server");
await act(async () => {
fireEvent.click(stop);
await fireEvent.click(stop);
});
let errorDialog = screen.getByText("Failed to stop server.");
@@ -584,12 +584,13 @@ test("Search for user calls updateUsers with name filter", async () => {
render(serverDashboardJsx());
});
const user = userEvent.setup({ advanceTimers: jest.advanceTimersByTime });
let search = screen.getByLabelText("user-search");
expect(mockUpdateUsers.mock.calls).toHaveLength(1);
expect(searchParams.get("offset")).toEqual("2");
userEvent.type(search, "a");
await user.type(search, "a");
expect(search.value).toEqual("a");
await act(async () => {
jest.runAllTimers();
@@ -599,7 +600,7 @@ test("Search for user calls updateUsers with name filter", async () => {
// FIXME: useSelector mocks prevent updateUsers from being called
// expect(mockUpdateUsers.mock.calls).toHaveLength(2);
// expect(mockUpdateUsers).toBeCalledWith(0, 100, "a");
userEvent.type(search, "b");
await user.type(search, "b");
expect(search.value).toEqual("ab");
await act(async () => {
jest.runAllTimers();
@@ -672,7 +673,7 @@ test("Start server and confirm pending state", async () => {
expect(buttons[2].textContent).toBe("Edit User");
await act(async () => {
fireEvent.click(buttons[0]);
await fireEvent.click(buttons[0]);
});
expect(mockUpdateUsers.mock.calls).toHaveLength(1);