Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 3e164f7

Browse files
committedMar 9, 2023
Run a few improvements
1 parent 761ed7b commit 3e164f7

File tree

7 files changed

+37
-28
lines changed

7 files changed

+37
-28
lines changed
 

‎site/src/components/DeploymentBanner/DeploymentBannerView.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ export const DeploymentBannerView: FC<DeploymentBannerViewProps> = ({
196196
<Tooltip title="A countdown until stats are fetched again. Click to refresh!">
197197
<Button
198198
className={`${styles.value} ${styles.refreshButton}`}
199-
title="Refresh"
200199
onClick={() => {
201200
if (fetchStats) {
202201
fetchStats()

‎site/src/components/Loader/FullScreenLoader.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export const FullScreenLoader: FC = () => {
2020
const styles = useStyles()
2121

2222
return (
23-
<div className={styles.root}>
23+
<div className={styles.root} data-testid="loader">
2424
<CircularProgress />
2525
</div>
2626
)

‎site/src/components/Loader/Loader.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export const Loader: FC<React.PropsWithChildren<{ size?: number }>> = ({
1212
display="flex"
1313
alignItems="center"
1414
justifyContent="center"
15+
data-testid="loader"
1516
>
1617
<CircularProgress size={size} />
1718
</Box>

‎site/src/pages/WorkspacePage/WorkspacePage.test.tsx

+28-5
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,17 @@ const { t } = i18next
2929

3030
// It renders the workspace page and waits for it be loaded
3131
const renderWorkspacePage = async () => {
32+
console.time("initial render")
3233
jest.spyOn(api, "getTemplate").mockResolvedValueOnce(MockTemplate)
3334
jest.spyOn(api, "getTemplateVersionRichParameters").mockResolvedValueOnce([])
3435
renderWithAuth(<WorkspacePage />, {
3536
route: `/@${MockWorkspace.owner_name}/${MockWorkspace.name}`,
3637
path: "/@:username/:workspace",
3738
})
39+
console.timeEnd("initial render")
40+
console.time("waitForLoaderToBeRemoved")
3841
await waitForLoaderToBeRemoved()
42+
console.timeEnd("waitForLoaderToBeRemoved")
3943
}
4044

4145
/**
@@ -85,32 +89,51 @@ afterAll(() => {
8589
})
8690

8791
describe("WorkspacePage", () => {
88-
it("requests a delete job when the user presses Delete and confirms", async () => {
89-
const user = userEvent.setup()
90-
92+
it.only("requests a delete job when the user presses Delete and confirms", async () => {
93+
console.time("render")
94+
const user = userEvent.setup({ delay: 0 })
9195
const deleteWorkspaceMock = jest
9296
.spyOn(api, "deleteWorkspace")
9397
.mockResolvedValueOnce(MockWorkspaceBuild)
9498
await renderWorkspacePage()
99+
console.timeEnd("render")
95100

101+
console.time("open popover")
96102
// open the workspace action popover so we have access to all available ctas
97103
const trigger = await screen.findByTestId("workspace-actions-button")
98104
await user.click(trigger)
105+
console.timeEnd("open popover")
99106

107+
console.time("click on delete")
100108
const buttonText = t("actionButton.delete", { ns: "workspacePage" })
101109
const button = await screen.findByText(buttonText)
102110
await user.click(button)
111+
console.timeEnd("click on delete")
103112

113+
console.time("confirm dialog")
114+
console.time("first time to dialog shows up")
104115
const labelText = t("deleteDialog.confirmLabel", {
105116
ns: "common",
106117
entity: "workspace",
107118
})
108119
const textField = await screen.findByLabelText(labelText)
120+
console.timeEnd("first time to dialog shows up")
121+
console.time("type name")
109122
await user.type(textField, MockWorkspace.name)
110-
const confirmButton = await screen.findByRole("button", { name: "Delete" })
123+
console.timeEnd("type name")
124+
console.time("click on confirm")
125+
console.time("find button")
126+
const confirmButton = screen.getByRole("button", {
127+
name: "Delete",
128+
hidden: false,
129+
})
130+
console.timeEnd("find button")
131+
console.time("click on confirm (Action)")
111132
await user.click(confirmButton)
133+
console.timeEnd("click on confirm (Action)")
134+
console.timeEnd("click on confirm")
112135
expect(deleteWorkspaceMock).toBeCalled()
113-
// This test takes long to finish
136+
console.timeEnd("confirm dialog")
114137
}, 20_000)
115138

116139
it("requests a start job when the user presses Start", async () => {

‎site/src/pages/WorkspacesPage/WorkspacesPage.test.tsx

+2-20
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { screen, waitFor } from "@testing-library/react"
1+
import { screen } from "@testing-library/react"
22
import { rest } from "msw"
33
import * as CreateDayString from "util/createDayString"
44
import {
@@ -37,25 +37,7 @@ describe("WorkspacesPage", () => {
3737
})
3838

3939
it("renders a filled workspaces page", async () => {
40-
// When
41-
const { container } = render(<WorkspacesPage />)
42-
43-
// Then
44-
const nextPage = await screen.findByRole("button", { name: "Next page" })
45-
expect(nextPage).toBeEnabled()
46-
await waitFor(
47-
async () => {
48-
const prevPage = await screen.findByRole("button", {
49-
name: "Previous page",
50-
})
51-
expect(prevPage).toBeDisabled()
52-
const pageButtons = container.querySelectorAll(
53-
`button[name="Page button"]`,
54-
)
55-
expect(pageButtons.length).toBe(2)
56-
},
57-
{ timeout: 2000 },
58-
)
40+
render(<WorkspacesPage />)
5941
await screen.findByText(`${MockWorkspace.name}1`)
6042
const templateDisplayNames = await screen.findAllByText(
6143
`${MockWorkspace.template_display_name}`,

‎site/src/testHelpers/handlers.ts

+4
Original file line numberDiff line numberDiff line change
@@ -307,4 +307,8 @@ export const handlers = [
307307
rest.get("/api/v2/appearance", (req, res, ctx) => {
308308
return res(ctx.status(200), ctx.json(M.MockAppearance))
309309
}),
310+
311+
rest.get("/api/v2/deployment/stats", (_, res, ctx) => {
312+
return res(ctx.status(200), ctx.json(M.MockDeploymentStats))
313+
}),
310314
]

‎site/src/testHelpers/renderHelpers.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,6 @@ export function renderWithAuth(
8787
}
8888

8989
export const waitForLoaderToBeRemoved = (): Promise<void> =>
90-
waitForElementToBeRemoved(() => screen.getByRole("progressbar"))
90+
waitForElementToBeRemoved(() => screen.getByTestId("loader"))
9191

9292
export * from "./entities"

0 commit comments

Comments
 (0)