diff --git a/site/src/pages/TerminalPage/TerminalPage.test.tsx b/site/src/pages/TerminalPage/TerminalPage.test.tsx index 8268832fef..45675ae547 100644 --- a/site/src/pages/TerminalPage/TerminalPage.test.tsx +++ b/site/src/pages/TerminalPage/TerminalPage.test.tsx @@ -15,6 +15,7 @@ import { } from "../../testHelpers/renderHelpers" import { server } from "../../testHelpers/server" import TerminalPage, { Language } from "./TerminalPage" +import * as API from "api/api" Object.defineProperty(window, "matchMedia", { writable: true, @@ -63,6 +64,20 @@ const expectTerminalText = (container: HTMLElement, text: string) => { } describe("TerminalPage", () => { + it("loads the right workspace data", async () => { + const spy = jest + .spyOn(API, "getWorkspaceByOwnerAndName") + .mockResolvedValue(MockWorkspace) + await renderTerminal(`/${MockUser.username}/${MockWorkspace.name}/terminal`) + await waitFor(() => { + expect(API.getWorkspaceByOwnerAndName).toHaveBeenCalledWith( + MockUser.username, + MockWorkspace.name, + ) + }) + spy.mockRestore() + }) + it("shows an error if fetching workspace fails", async () => { // Given server.use( diff --git a/site/src/pages/TerminalPage/TerminalPage.tsx b/site/src/pages/TerminalPage/TerminalPage.tsx index 4d0b45f6c7..cec2209363 100644 --- a/site/src/pages/TerminalPage/TerminalPage.tsx +++ b/site/src/pages/TerminalPage/TerminalPage.tsx @@ -73,7 +73,9 @@ const TerminalPage: FC = () => { const navigate = useNavigate() const styles = useStyles() const { proxy } = useProxy() - const { username, workspace: workspaceName } = useParams() + const params = useParams() as { username: string; workspace: string } + const username = params.username.replace("@", "") + const workspaceName = params.workspace const xtermRef = useRef(null) const [terminal, setTerminal] = useState(null) const [fitAddon, setFitAddon] = useState(null)