From ceda4ea83d942547cbba18bdfa748c313296d032 Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Thu, 29 Sep 2022 16:45:17 +0000 Subject: [PATCH 1/5] fix: await promises in WorkspacePage.test.tsx --- site/src/pages/WorkspacePage/WorkspacePage.test.tsx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/site/src/pages/WorkspacePage/WorkspacePage.test.tsx b/site/src/pages/WorkspacePage/WorkspacePage.test.tsx index 390a3950350a5..6bc196b66e04a 100644 --- a/site/src/pages/WorkspacePage/WorkspacePage.test.tsx +++ b/site/src/pages/WorkspacePage/WorkspacePage.test.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-floating-promises */ import { fireEvent, screen, waitFor } from "@testing-library/react" import userEvent from "@testing-library/user-event" import EventSource from "eventsourcemock" @@ -94,7 +93,7 @@ describe("WorkspacePage", () => { const stopWorkspaceMock = jest .spyOn(api, "stopWorkspace") .mockResolvedValueOnce(MockWorkspaceBuild) - testButton(Language.stop, stopWorkspaceMock) + await testButton(Language.stop, stopWorkspaceMock) }) it("requests a delete job when the user presses Delete and confirms", async () => { @@ -128,7 +127,7 @@ describe("WorkspacePage", () => { const startWorkspaceMock = jest .spyOn(api, "startWorkspace") .mockImplementation(() => Promise.resolve(MockWorkspaceBuild)) - testButton(Language.start, startWorkspaceMock) + await testButton(Language.start, startWorkspaceMock) }) it("requests cancellation when the user presses Cancel", async () => { server.use( From 3b280d4ad6e8a41fc7378811fda8d8a9af7b24dc Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Thu, 29 Sep 2022 16:45:29 +0000 Subject: [PATCH 2/5] chore: add eventsourcemock to cspell words --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 726e2a012112f..fa559109b7c28 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -24,6 +24,7 @@ "drpcmux", "drpcserver", "Dsts", + "eventsourcemock", "fatih", "Formik", "gitsshkey", From 27be8c2feb83fb17f55ee14ca8e296c26d34139a Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Thu, 29 Sep 2022 16:49:34 +0000 Subject: [PATCH 3/5] fix: clean up UsersPage.test.tsx --- site/src/pages/UsersPage/UsersPage.test.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/site/src/pages/UsersPage/UsersPage.test.tsx b/site/src/pages/UsersPage/UsersPage.test.tsx index 1c5559fedaca0..a0fe53922d766 100644 --- a/site/src/pages/UsersPage/UsersPage.test.tsx +++ b/site/src/pages/UsersPage/UsersPage.test.tsx @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-floating-promises */ import { fireEvent, screen, waitFor, within } from "@testing-library/react" import userEvent from "@testing-library/user-event" import { i18n } from "i18n" @@ -474,8 +473,7 @@ describe("UsersPage", () => { }), ) - // eslint-disable-next-line @typescript-eslint/no-empty-function - await updateUserRole(() => {}, MockAuditorRole) + await updateUserRole(() => null, MockAuditorRole) // Check if the error message is displayed const errorMessage = await screen.findByText("message from the backend") From a4769d8aba3a42f01c8734748272d02a59f6b9c7 Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Thu, 29 Sep 2022 20:38:27 +0000 Subject: [PATCH 4/5] refactor: clean up eventsource mock --- .../pages/WorkspacePage/WorkspacePage.test.tsx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/site/src/pages/WorkspacePage/WorkspacePage.test.tsx b/site/src/pages/WorkspacePage/WorkspacePage.test.tsx index 6bc196b66e04a..31839ab350b23 100644 --- a/site/src/pages/WorkspacePage/WorkspacePage.test.tsx +++ b/site/src/pages/WorkspacePage/WorkspacePage.test.tsx @@ -1,6 +1,6 @@ import { fireEvent, screen, waitFor } from "@testing-library/react" import userEvent from "@testing-library/user-event" -import EventSource from "eventsourcemock" +import EventSourceMock from "eventsourcemock" import i18next from "i18next" import { rest } from "msw" import * as api from "../../api/api" @@ -70,13 +70,20 @@ const testStatus = async (ws: Workspace, label: string) => { expect(status).toHaveTextContent(label) } +let originalEventSource: typeof window.EventSource + +beforeAll(() => { + originalEventSource = window.EventSource + // mocking out EventSource for SSE + window.EventSource = EventSourceMock +}) + beforeEach(() => { jest.resetAllMocks() +}) - // mocking out EventSource for SSE - Object.defineProperty(window, "EventSource", { - value: EventSource, - }) +afterAll(() => { + window.EventSource = originalEventSource }) describe("WorkspacePage", () => { From 83e35833b7205c1215993a284f30574baad1fd83 Mon Sep 17 00:00:00 2001 From: Joe Previte Date: Thu, 29 Sep 2022 21:02:43 +0000 Subject: [PATCH 5/5] revert: remove changes from WorkspacePage.test.tsx --- site/src/pages/WorkspacePage/WorkspacePage.test.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/site/src/pages/WorkspacePage/WorkspacePage.test.tsx b/site/src/pages/WorkspacePage/WorkspacePage.test.tsx index 31839ab350b23..9e6132bb03f8a 100644 --- a/site/src/pages/WorkspacePage/WorkspacePage.test.tsx +++ b/site/src/pages/WorkspacePage/WorkspacePage.test.tsx @@ -1,3 +1,4 @@ +/* eslint-disable @typescript-eslint/no-floating-promises */ import { fireEvent, screen, waitFor } from "@testing-library/react" import userEvent from "@testing-library/user-event" import EventSourceMock from "eventsourcemock" @@ -100,7 +101,7 @@ describe("WorkspacePage", () => { const stopWorkspaceMock = jest .spyOn(api, "stopWorkspace") .mockResolvedValueOnce(MockWorkspaceBuild) - await testButton(Language.stop, stopWorkspaceMock) + testButton(Language.stop, stopWorkspaceMock) }) it("requests a delete job when the user presses Delete and confirms", async () => { @@ -134,7 +135,7 @@ describe("WorkspacePage", () => { const startWorkspaceMock = jest .spyOn(api, "startWorkspace") .mockImplementation(() => Promise.resolve(MockWorkspaceBuild)) - await testButton(Language.start, startWorkspaceMock) + testButton(Language.start, startWorkspaceMock) }) it("requests cancellation when the user presses Cancel", async () => { server.use(