Skip to content
Prev Previous commit
Next Next commit
am I getting warmer?
  • Loading branch information
aslilac committed Aug 18, 2023
commit 089ea8f36171eb470bff37adb666c9906ed099da
21 changes: 14 additions & 7 deletions site/src/pages/SetupPage/SetupPage.test.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
import { fireEvent, screen, waitFor } from "@testing-library/react"
import userEvent from "@testing-library/user-event"
import { rest } from "msw"
import { renderWithAuth } from "testHelpers/renderHelpers"
import {
renderWithAuth,
waitForLoaderToBeRemoved,
} from "testHelpers/renderHelpers"
import { server } from "testHelpers/server"
import { SetupPage } from "./SetupPage"
import { Language as PageViewLanguage } from "./SetupPageView"
Expand Down Expand Up @@ -49,7 +52,8 @@ describe("Setup Page", () => {
})

it("shows validation error message", async () => {
renderWithAuth(<SetupPage />)
renderWithAuth(<SetupPage />, { route: "/setup", path: "/setup" })
await waitForLoaderToBeRemoved()
await fillForm({ email: "test" })
const errorMessage = await screen.findByText(PageViewLanguage.emailInvalid)
expect(errorMessage).toBeDefined()
Expand All @@ -73,28 +77,28 @@ describe("Setup Page", () => {
)
}),
)
renderWithAuth(<SetupPage />)

renderWithAuth(<SetupPage />, { route: "/setup", path: "/setup" })
await waitForLoaderToBeRemoved()
await fillForm()
const errorMessage = await screen.findByText(fieldErrorMessage)
expect(errorMessage).toBeDefined()
})

it("redirects to login if setup has already completed", async () => {
renderWithAuth(<SetupPage />)

// simulates setup having already been completed
server.use(
rest.get("/api/v2/users/first", (req, res, ctx) => {
return res(ctx.status(404), ctx.json({ message: "hooray, you exist!" }))
}),
)

renderWithAuth(<SetupPage />, { route: "/setup", path: "/setup" })
await waitForLoaderToBeRemoved()
await waitFor(() => expect(window.location).toBeAt("/login"))
})

it("redirects to workspaces page when success", async () => {
renderWithAuth(<SetupPage />)

// simulates the user will be authenticated
server.use(
rest.get("/api/v2/users/me", (req, res, ctx) => {
Expand All @@ -105,6 +109,9 @@ describe("Setup Page", () => {
}),
)

renderWithAuth(<SetupPage />, { route: "/setup", path: "/setup" })
await waitForLoaderToBeRemoved()

await fillForm()
await waitFor(() => expect(window.location).toBeAt("/workspaces"))
})
Expand Down