Skip to content

Commit c3781d9

Browse files
fix(site): fix build logs route (#8100)
1 parent eb0783f commit c3781d9

File tree

2 files changed

+31
-2
lines changed

2 files changed

+31
-2
lines changed

site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.test.tsx

+23-1
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,32 @@
1-
import { screen } from "@testing-library/react"
1+
import { screen, waitFor } from "@testing-library/react"
22
import WS from "jest-websocket-mock"
33
import { renderWithAuth } from "../../testHelpers/renderHelpers"
44
import { WorkspaceBuildPage } from "./WorkspaceBuildPage"
55
import { MockWorkspace, MockWorkspaceBuild } from "testHelpers/entities"
6+
import * as API from "api/api"
7+
8+
afterEach(() => {
9+
WS.clean()
10+
})
611

712
describe("WorkspaceBuildPage", () => {
13+
test("gets the right workspace build", async () => {
14+
const getWorkspaceBuildSpy = jest
15+
.spyOn(API, "getWorkspaceBuildByNumber")
16+
.mockResolvedValue(MockWorkspaceBuild)
17+
renderWithAuth(<WorkspaceBuildPage />, {
18+
route: `/@${MockWorkspace.owner_name}/${MockWorkspace.name}/builds/${MockWorkspace.latest_build.build_number}`,
19+
path: "/:username/:workspace/builds/:buildNumber",
20+
})
21+
await waitFor(() =>
22+
expect(getWorkspaceBuildSpy).toBeCalledWith(
23+
MockWorkspace.owner_name,
24+
MockWorkspace.name,
25+
`${MockWorkspaceBuild.build_number}`,
26+
),
27+
)
28+
})
29+
830
test("the mock server seamlessly handles JSON protocols", async () => {
931
const server = new WS("ws://localhost:1234", { jsonProtocol: true })
1032
const client = new WebSocket("ws://localhost:1234")

site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.tsx

+8-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,14 @@ import { workspaceBuildMachine } from "../../xServices/workspaceBuild/workspaceB
77
import { WorkspaceBuildPageView } from "./WorkspaceBuildPageView"
88

99
export const WorkspaceBuildPage: FC = () => {
10-
const { username, workspace: workspaceName, buildNumber } = useParams()
10+
const params = useParams() as {
11+
username: string
12+
workspace: string
13+
buildNumber: string
14+
}
15+
const workspaceName = params.workspace
16+
const buildNumber = params.buildNumber
17+
const username = params.username.replace("@", "")
1118
const [buildState] = useMachine(workspaceBuildMachine, {
1219
context: { username, workspaceName, buildNumber, timeCursor: new Date() },
1320
})

0 commit comments

Comments
 (0)