diff --git a/src/modules/choose-team/ChooseTeamPage.spec.tsx b/src/modules/choose-team/ChooseTeamPage.spec.tsx
index 17268382..1cf888b9 100644
--- a/src/modules/choose-team/ChooseTeamPage.spec.tsx
+++ b/src/modules/choose-team/ChooseTeamPage.spec.tsx
@@ -1,41 +1,112 @@
import React from "react";
-import { mount } from "enzyme";
-import { createMemoryHistory, MemoryHistory } from "history";
-import { act } from "react-dom/test-utils";
-import { findByTestId, withMockedProviders } from "../../spec_helper";
+import { withMockedProviders } from "../../spec_helper";
import { Content } from "./ChooseTeamPage";
+import { render, screen, fireEvent } from "@testing-library/react";
+import { GET_INVITES } from "./components/InviteList";
+import { GET_TEAMS } from "./components/TeamList";
+
+const mockHistoryPush = jest.fn();
+
+jest.mock("react-router-dom", () => ({
+ ...(jest.requireActual("react-router-dom") as any),
+ useHistory: () => ({
+ push: mockHistoryPush,
+ }),
+}));
+
+const mockWithInvites = [
+ {
+ request: {
+ query: GET_INVITES,
+ },
+ result: {
+ data: {
+ viewer: {
+ teamInvites: [
+ {
+ id: '1',
+ team: {
+ id: '1',
+ name: 'Kabisa',
+ },
+ },
+ {
+ id: '2',
+ team: {
+ id: '2',
+ name: 'Dovetail',
+ },
+ },
+ ],
+ },
+ },
+ },
+ },
+ {
+ request: {
+ query: GET_TEAMS,
+ },
+ result: {
+ data: {
+ viewer: {
+ memberships: [
+ {
+ id: '1',
+ role: 'admin',
+ team: {
+ id: '2',
+ name: 'Team 1',
+ },
+ },
+ {
+ id: '2',
+ role: 'admin',
+ team: {
+ id: '2',
+ name: 'Team 2',
+ },
+ },
+ ],
+ },
+ },
+ },
+ },
+];
describe("", () => {
- let wrapper: any;
- let history: MemoryHistory;
+ it("renders the invite list", async () => {
+ render(withMockedProviders(, mockWithInvites));
- beforeEach(async () => {
- history = createMemoryHistory();
+ const inviteList = screen.getByTestId("invite-list");
- await act(async () => {
- wrapper = mount(withMockedProviders());
- });
+ expect(inviteList).toBeInTheDocument();
});
- it("renders the invite list", () => {
- expect(findByTestId(wrapper, "invite-list").length).toBe(1);
- });
+ it("renders the team list", async () => {
+ render(withMockedProviders(, mockWithInvites));
- it("renders the team list", () => {
- expect(wrapper.find("TeamList").length).toBe(1);
+ const teamList = screen.getByTestId("personal-team-list");
+
+ expect(teamList).toBeInTheDocument();
});
it("renders the create team button", () => {
- expect(wrapper.find(".button").length).toBe(1);
+ render(withMockedProviders(, mockWithInvites));
+
+ const createTeamButton = screen.getByRole("button", {
+ name: "Create team",
+ });
+ expect(createTeamButton).toBeInTheDocument();
});
it("navigates to the create team page", async () => {
- await act(async () => {
- findByTestId(wrapper, "create-team").hostNodes().simulate("click");
+ render(withMockedProviders(, mockWithInvites));
- await wrapper.update();
-
- expect(history.location.pathname).toBe("/create-team");
+ const createTeamButton = screen.getByRole("button", {
+ name: "Create team",
});
+ fireEvent.click(createTeamButton);
+
+ expect(mockHistoryPush).toHaveBeenCalledWith("/create-team");
});
});
diff --git a/src/modules/choose-team/ChooseTeamPage.tsx b/src/modules/choose-team/ChooseTeamPage.tsx
index 7c18ef9b..c1e0a269 100644
--- a/src/modules/choose-team/ChooseTeamPage.tsx
+++ b/src/modules/choose-team/ChooseTeamPage.tsx
@@ -15,13 +15,12 @@ export function Content(): React.ReactElement {
return (
Your invites
-
+
Your teams
-
+
Or