Skip to content

Commit b338fe1

Browse files
committed
Fix tests
1 parent a10774f commit b338fe1

File tree

12 files changed

+76
-25
lines changed

12 files changed

+76
-25
lines changed

site/src/AppRouter.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,10 @@ const WorkspaceBuildPage = lazy(
4646
)
4747
const WorkspacePage = lazy(() => import("./pages/WorkspacePage/WorkspacePage"))
4848
const WorkspaceSchedulePage = lazy(
49-
() => import("./pages/WorkspaceSchedulePage/WorkspaceSchedulePage"),
49+
() =>
50+
import(
51+
"./pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage"
52+
),
5053
)
5154
const TerminalPage = lazy(() => import("./pages/TerminalPage/TerminalPage"))
5255
const TemplatePermissionsPage = lazy(

site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import utc from "dayjs/plugin/utc"
66
import {
77
defaultSchedule,
88
emptySchedule,
9-
} from "pages/WorkspaceSchedulePage/schedule"
10-
import { emptyTTL } from "pages/WorkspaceSchedulePage/ttl"
9+
} from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule"
10+
import { emptyTTL } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/ttl"
1111
import { makeMockApiError } from "testHelpers/entities"
1212
import {
1313
WorkspaceScheduleForm,

site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import { FormikTouched, useFormik } from "formik"
2525
import {
2626
defaultSchedule,
2727
emptySchedule,
28-
} from "pages/WorkspaceSchedulePage/schedule"
28+
} from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule"
2929
import { ChangeEvent, FC } from "react"
3030
import * as Yup from "yup"
3131
import { getFormHelpers } from "../../util/formUtils"

site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx renamed to site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.test.tsx

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
1-
import { renderWithAuth } from "testHelpers/renderHelpers"
1+
import { renderWithWorkspaceSettingsLayout } from "testHelpers/renderHelpers"
22
import userEvent from "@testing-library/user-event"
33
import { screen } from "@testing-library/react"
44
import {
55
formValuesToAutostartRequest,
66
formValuesToTTLRequest,
7-
} from "pages/WorkspaceSchedulePage/formToRequest"
7+
} from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/formToRequest"
88
import {
99
Autostart,
1010
scheduleToAutostart,
11-
} from "pages/WorkspaceSchedulePage/schedule"
12-
import { Autostop, ttlMsToAutostop } from "pages/WorkspaceSchedulePage/ttl"
13-
import * as TypesGen from "../../api/typesGenerated"
11+
} from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule"
12+
import {
13+
Autostop,
14+
ttlMsToAutostop,
15+
} from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/ttl"
16+
import * as TypesGen from "../../../api/typesGenerated"
1417
import {
1518
WorkspaceScheduleFormValues,
1619
Language as FormLanguage,
@@ -257,7 +260,7 @@ describe("WorkspaceSchedulePage", () => {
257260

258261
describe("autostop change dialog", () => {
259262
it("shows if autostop is changed", async () => {
260-
renderWithAuth(<WorkspaceSchedulePage />, {
263+
renderWithWorkspaceSettingsLayout(<WorkspaceSchedulePage />, {
261264
route: `/@${MockUser.username}/${MockWorkspace.name}/schedule`,
262265
path: "/@:username/:workspace/schedule",
263266
})
@@ -276,7 +279,7 @@ describe("WorkspaceSchedulePage", () => {
276279
})
277280

278281
it("doesn't show if autostop is not changed", async () => {
279-
renderWithAuth(<WorkspaceSchedulePage />, {
282+
renderWithWorkspaceSettingsLayout(<WorkspaceSchedulePage />, {
280283
route: `/@${MockUser.username}/${MockWorkspace.name}/schedule`,
281284
path: "/@:username/:workspace/schedule",
282285
})
@@ -309,7 +312,7 @@ describe("WorkspaceSchedulePage", () => {
309312
},
310313
),
311314
)
312-
renderWithAuth(<WorkspaceSchedulePage />, {
315+
renderWithWorkspaceSettingsLayout(<WorkspaceSchedulePage />, {
313316
route: `/@${MockUser.username}/${MockWorkspace.name}/schedule`,
314317
path: "/@:username/:workspace/schedule",
315318
})

site/src/pages/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx renamed to site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/WorkspaceSchedulePage.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,19 @@ import { ConfirmDialog } from "components/Dialogs/ConfirmDialog/ConfirmDialog"
55
import { Loader } from "components/Loader/Loader"
66
import { PageHeader, PageHeaderTitle } from "components/PageHeader/PageHeader"
77
import dayjs from "dayjs"
8-
import { scheduleToAutostart } from "pages/WorkspaceSchedulePage/schedule"
9-
import { ttlMsToAutostop } from "pages/WorkspaceSchedulePage/ttl"
8+
import { scheduleToAutostart } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule"
9+
import { ttlMsToAutostop } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/ttl"
1010
import { useWorkspaceSettingsContext } from "pages/WorkspaceSettingsPage/WorkspaceSettingsLayout"
1111
import { FC } from "react"
1212
import { Helmet } from "react-helmet-async"
1313
import { useTranslation } from "react-i18next"
1414
import { Navigate, useNavigate, useParams } from "react-router-dom"
1515
import { pageTitle } from "util/page"
1616
import { scheduleChanged } from "util/schedule"
17-
import * as TypesGen from "../../api/typesGenerated"
18-
import { WorkspaceScheduleForm } from "../../components/WorkspaceScheduleForm/WorkspaceScheduleForm"
19-
import { firstOrItem } from "../../util/array"
20-
import { workspaceSchedule } from "../../xServices/workspaceSchedule/workspaceScheduleXService"
17+
import * as TypesGen from "../../../api/typesGenerated"
18+
import { WorkspaceScheduleForm } from "../../../components/WorkspaceScheduleForm/WorkspaceScheduleForm"
19+
import { firstOrItem } from "../../../util/array"
20+
import { workspaceSchedule } from "../../../xServices/workspaceSchedule/workspaceScheduleXService"
2121
import {
2222
formValuesToAutostartRequest,
2323
formValuesToTTLRequest,

site/src/pages/WorkspaceSchedulePage/schedule.ts renamed to site/src/pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as cronParser from "cron-parser"
22
import dayjs from "dayjs"
33
import timezone from "dayjs/plugin/timezone"
44
import utc from "dayjs/plugin/utc"
5-
import { extractTimezone, stripTimezone } from "../../util/schedule"
5+
import { extractTimezone, stripTimezone } from "../../../util/schedule"
66

77
// REMARK: timezone plugin depends on UTC
88
//

site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import userEvent from "@testing-library/user-event"
22
import {
3-
renderWithAuth,
3+
renderWithWorkspaceSettingsLayout,
44
waitForLoaderToBeRemoved,
55
} from "testHelpers/renderHelpers"
66
import WorkspaceSettingsPage from "./WorkspaceSettingsPage"
@@ -41,7 +41,7 @@ test("Submit the workspace settings page successfully", async () => {
4141
.mockResolvedValue(MockWorkspaceBuild)
4242
// Setup event and rendering
4343
const user = userEvent.setup()
44-
renderWithAuth(<WorkspaceSettingsPage />, {
44+
renderWithWorkspaceSettingsLayout(<WorkspaceSettingsPage />, {
4545
route: "/@test-user/test-workspace/settings",
4646
path: "/@:username/:workspace/settings",
4747
// Need this because after submit the user is redirected

site/src/testHelpers/renderHelpers.tsx

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { DashboardLayout } from "components/Dashboard/DashboardLayout"
99
import { createMemoryHistory } from "history"
1010
import { i18n } from "i18n"
1111
import { TemplateSettingsLayout } from "pages/TemplateSettingsPage/TemplateSettingsLayout"
12+
import { WorkspaceSettingsLayout } from "pages/WorkspaceSettingsPage/WorkspaceSettingsLayout"
1213
import { FC, ReactElement } from "react"
1314
import { I18nextProvider } from "react-i18next"
1415
import {
@@ -131,6 +132,50 @@ export function renderWithTemplateSettingsLayout(
131132
}
132133
}
133134

135+
export function renderWithWorkspaceSettingsLayout(
136+
element: JSX.Element,
137+
{
138+
path = "/",
139+
route = "/",
140+
extraRoutes = [],
141+
nonAuthenticatedRoutes = [],
142+
}: RenderWithAuthOptions = {},
143+
) {
144+
const routes: RouteObject[] = [
145+
{
146+
element: <RequireAuth />,
147+
children: [
148+
{
149+
element: <DashboardLayout />,
150+
children: [
151+
{
152+
element: <WorkspaceSettingsLayout />,
153+
children: [{ path, element }, ...extraRoutes],
154+
},
155+
],
156+
},
157+
],
158+
},
159+
...nonAuthenticatedRoutes,
160+
]
161+
162+
const router = createMemoryRouter(routes, { initialEntries: [route] })
163+
164+
const renderResult = wrappedRender(
165+
<I18nextProvider i18n={i18n}>
166+
<AppProviders>
167+
<RouterProvider router={router} />
168+
</AppProviders>
169+
</I18nextProvider>,
170+
)
171+
172+
return {
173+
user: MockUser,
174+
router,
175+
...renderResult,
176+
}
177+
}
178+
134179
export const waitForLoaderToBeRemoved = (): Promise<void> =>
135180
// Sometimes, we have pages that are doing a lot of requests to get done, so the
136181
// default timeout of 1_000 is not enough. We should revisit this when we unify

site/src/util/schedule.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import dayjs from "dayjs"
22
import duration from "dayjs/plugin/duration"
3-
import { emptySchedule } from "pages/WorkspaceSchedulePage/schedule"
4-
import { emptyTTL } from "pages/WorkspaceSchedulePage/ttl"
3+
import { emptySchedule } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule"
4+
import { emptyTTL } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/ttl"
55
import { Workspace } from "../api/typesGenerated"
66
import * as Mocks from "../testHelpers/entities"
77
import {

site/src/util/schedule.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ import utc from "dayjs/plugin/utc"
1010
import { Workspace } from "../api/typesGenerated"
1111
import { isWorkspaceOn } from "./workspace"
1212
import { WorkspaceScheduleFormValues } from "components/WorkspaceScheduleForm/WorkspaceScheduleForm"
13-
import { Autostop } from "pages/WorkspaceSchedulePage/ttl"
14-
import { Autostart } from "pages/WorkspaceSchedulePage/schedule"
13+
import { Autostop } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/ttl"
14+
import { Autostart } from "pages/WorkspaceSettingsPage/WorkspaceSchedulePage/schedule"
1515

1616
// REMARK: some plugins depend on utc, so it's listed first. Otherwise they're
1717
// sorted alphabetically.

0 commit comments

Comments
 (0)